|
|
|
| Функция eval() инициализирует переменную. То есть, данный код
<?php
$b = 3;
eval("\$a$b;");
?>
|
инициализирует переменную $a3.
Как присвоить временной переменной $tmp результат функции eval(), если значение $b не известно?
Спасибо. | |
|
|
|
|
|
|
|
для: Mookapek
(14.09.2008 в 02:49)
| | Что вы называете результатом функции eval?
Если вычисляемый код не содержит return, то:
- в PHP 3 и PHP 5 eval не возвращает значения (=возвращает Null)
- в PHP 4 возвращает false.
Словом, что нужно записать в $tmp? | |
|
|
|
|
|
|
|
для: 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
Его, впрочем, на это время можно загасить | |
|
|
|
|
|
|
|
для: Trianon
(14.09.2008 в 10:05)
| | Мой источник:
В PHP 4 eval() возвращает FALSE, если не вызвана return() в вычисляемом коде
http://php.su/functions/?f=eval&choice=info
Но вы правы - оригинальный мануал на php.net говорит иначе. Извиняюсь за некорретный выбор источников. | |
|
|
|
|
|
|
|
для: Mookapek
(14.09.2008 в 02:49)
| | >Функция eval() инициализирует переменную. То есть, данный код
функция eval ничего такого не делает. Она код исполняет. В Вашем случае она исполнит код
ни к чему разумному не приводящий. Точнее - вообще ни к чему.
Никакая переменная при этом не инициализируется.
Возвращаемое значение у функции eval - NULL (как минимум, если другое не задано оператором return) | |
|
|
|