Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: сессия

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
NevO
Отправлено: 30 Августа, 2012 - 00:31:16
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Сент. 2010  


Помог: 0 раз(а)




и так есть скрипт
PHP:
скопировать код в буфер обмена
  1.  
  2. $_SESSION['test']='test';
  3. $const="_SESSION['test']";//(!)кавычки нужны специально
  4.  

нужно вывести содержимое $_SESSION['test'] используя $const

$$const не работает(
 
 Top
Bartezz
Отправлено: 30 Августа, 2012 - 00:35:36
Post Id



Гость


Покинул форум
Сообщений всего: 70
Дата рег-ции: Февр. 2010  


Помог: 1 раз(а)




Интересно зачем кавычки нужны специально?Улыбка А вот так уже прям совсем не работает?
PHP:
скопировать код в буфер обмена
  1. $_SESSION['test']='test';
  2. $const=$_SESSION['test'];
  3. echo $const;

(Отредактировано автором: 30 Августа, 2012 - 00:36:26)

 
 Top
NevO
Отправлено: 30 Августа, 2012 - 00:37:07
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Сент. 2010  


Помог: 0 раз(а)




Bartezz пишет:
Интересно зачем ковычки нужны специально?Улыбка А вот так уже прям совсем не работает?
PHP:
скопировать код в буфер обмена
  1. $_SESSION['test']='test';
  2. $const=$_SESSION['test'];
  3. echo $const;


кавычки нужны. так как хочу просто понять принцип работы. нужно для обработки шаблона.
 
 Top
Bartezz
Отправлено: 30 Августа, 2012 - 00:39:18
Post Id



Гость


Покинул форум
Сообщений всего: 70
Дата рег-ции: Февр. 2010  


Помог: 1 раз(а)




Есть жесткая необходимость задать переммой $const значение string? так она автоматически задаться при присваивании значения от $_SESSION. В Любом случае, значки $ упускать не надо

(Отредактировано автором: 30 Августа, 2012 - 00:40:48)

 
 Top
NevO
Отправлено: 30 Августа, 2012 - 00:43:13
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Сент. 2010  


Помог: 0 раз(а)




Bartezz пишет:
Есть жесткая необходимость задать переммой $const значение string, так она автоматически задаться при присваивании значения от $_SESSION? В Любом случае, значки $ упускать не надо

$const -обязательно строка, т.к. в будущем это будет часть кода страницы, т.е. например:
PHP:
скопировать код в буфер обмена
  1. $text="Привет, {}";
  2. ... //обработка
  3. //получаем:
  4. $const="_SESSION['user']"
  5.  
 
 Top
Bartezz
Отправлено: 30 Августа, 2012 - 00:46:58
Post Id



Гость


Покинул форум
Сообщений всего: 70
Дата рег-ции: Февр. 2010  


Помог: 1 раз(а)




Как тебя еще ткнуть что необходимо писать не $const="_SESSION['user']", а $const="$_SESSION['user']" а грамотнее $const=$_SESSION['user']

(Отредактировано автором: 30 Августа, 2012 - 00:58:16)

 
 Top
NevO
Отправлено: 30 Августа, 2012 - 00:59:38
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Сент. 2010  


Помог: 0 раз(а)




Bartezz пишет:
Как тебя еще ткнуть что необходимо писать не $const="_SESSION['user']", а $const="$_SESSION['user']" а грамотнее $const=$_SESSION['user'] а если хочешь увидеть на примеру что $const строка сделай так:
PHP:
скопировать код в буфер обмена
  1. $const=$_SESSION['user'];
  2. if (is_string($const)) {echo "я строка!";}

хотя... если в сессии не строка то и тут строки не будет, но это сказывается почти уже третий час ночиУлыбка тем не менее, если необходимо будет изменить из int в string то php сделает это автоматически

Окей, видимо ты не понял меня. вот другой пример:
PHP:
скопировать код в буфер обмена
  1. <?
  2. $_SESSION['test']='test';
  3. $name = "test.tpl";
  4. $fp = fopen($name,'r');
  5. $data = fread($fp,filesize($name));
  6. fclose($fp);
  7. $pos=0;
  8. while(($pos=strpos($data,'{',$pos))!==false){          
  9.         $pos2=strpos($data,'}',$pos);
  10.         $start=$pos+1;
  11.         $ln=$pos2-$start;
  12.         $const=substr($data,$start,$ln);
  13.         $data=str_replace($const, $$const, $data);
  14.         $pos++;
  15. }
  16. echo $data;
  17. ?>

test.tpl:
CODE (html):
скопировать код в буфер обмена
  1. Привет, {$_SESSION['test']}!


на выходе должно быть:
Привет, test!
 
 Top
Bartezz
Отправлено: 30 Августа, 2012 - 01:53:19
Post Id



Гость


Покинул форум
Сообщений всего: 70
Дата рег-ции: Февр. 2010  


Помог: 1 раз(а)




вообще неясно, зачем все так усложнять, но если ты используешь символические ссылки с массивами то синтаксис, в твоем случае, будет такой:
PHP:
скопировать код в буфер обмена
  1. $_SESSION['test']='test';
  2. $const="_SESSION['test']"
  3. echo ${$const}['test'];

почитать http://www.php.su/learnphp/vars/?varsvars

И не проще ли для поиска (вместо вот этого ненужного цикла) пользоваться регулярными выражениями?

(Отредактировано автором: 30 Августа, 2012 - 01:53:52)

 
 Top
NevO
Отправлено: 30 Августа, 2012 - 05:52:08
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Сент. 2010  


Помог: 0 раз(а)




Bartezz пишет:
вообще неясно, зачем все так усложнять, но если ты используешь символические ссылки с массивами то синтаксис, в твоем случае, будет такой:
PHP:
скопировать код в буфер обмена
  1. $_SESSION['test']='test';
  2. $const="_SESSION['test']"
  3. echo ${$const}['test'];

почитать http://www.php.su/learnphp/vars/?varsvars


не совсем точно, но я рад что мы наконец друг друга поняли Улыбка
PHP:
скопировать код в буфер обмена
  1. $_SESSION['test']='test';
  2. $const="_SESSION";
  3. echo 'const='.${$const}['test'];


Bartezz пишет:
И не проще ли для поиска (вместо вот этого ненужного цикла) пользоваться регулярными выражениями?

что ты имеешь ввиду?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB