Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сконструировать переменную
 
 автор: Mookapek   (14.09.2008 в 02:49)   письмо автору
 
 

Функция eval() инициализирует переменную. То есть, данный код
<?php
$b 
3;
eval(
"\$a$b;");
?>

инициализирует переменную $a3.
Как присвоить временной переменной $tmp результат функции eval(), если значение $b не известно?
Спасибо.

  Ответить  
 
 автор: koshka   (14.09.2008 в 03:59)   письмо автору
 
   для: Mookapek   (14.09.2008 в 02:49)
 

Что вы называете результатом функции eval?
Если вычисляемый код не содержит return, то:
- в PHP 3 и PHP 5 eval не возвращает значения (=возвращает Null)
- в PHP 4 возвращает false.

Словом, что нужно записать в $tmp?

  Ответить  
 
 автор: Trianon   (14.09.2008 в 10:05)   письмо автору
 
   для: koshka   (14.09.2008 в 03:59)
 

>- в PHP 4 возвращает false.
Это мягко говоря - неточно, а грубо говоря - неверно.

Значение FALSE функция eval вернет лишь при ошибке синтаксического анализа кода.
Прем до того, как вернет, система зафиксирует нотайс.
Parse error: syntax error, unexpected T_VARIABLE in file.php(nnn) : eval()'d code on line 1
Его, впрочем, на это время можно загасить

  Ответить  
 
 автор: koshka   (15.09.2008 в 21:59)   письмо автору
 
   для: Trianon   (14.09.2008 в 10:05)
 

Мой источник:
В PHP 4 eval() возвращает FALSE, если не вызвана return() в вычисляемом коде
http://php.su/functions/?f=eval&choice=info

Но вы правы - оригинальный мануал на php.net говорит иначе. Извиняюсь за некорретный выбор источников.

  Ответить  
 
 автор: Trianon   (14.09.2008 в 09:33)   письмо автору
 
   для: Mookapek   (14.09.2008 в 02:49)
 

>Функция eval() инициализирует переменную. То есть, данный код
функция eval ничего такого не делает. Она код исполняет. В Вашем случае она исполнит код
$a3;

ни к чему разумному не приводящий. Точнее - вообще ни к чему.
Никакая переменная при этом не инициализируется.

Возвращаемое значение у функции eval - NULL (как минимум, если другое не задано оператором return)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования