|
|
|
| Если я правильно понимаю, то появление оператора eval автоматически исполняет то, что в текстовом виде присутствует в его аргументе.
Например.
$abc = 'for ($k = 1; $k <=5; $k++)';
echo "<br>", $abc, "<br>";
eval("$abc");
echo "<br>k = $k ";
|
Здесь первый опрератор echo выводит вот что:
for ($k = 1; $k <=100; $k++)
|
Я ожидал, что второй оператор echo выведет последовательность цифр от 1 до 5. Но вместо этого появляется число 6. То есть, цикл прошел внутри eval .
А как построить код, что бы при использовании оператора eval в приведенном виде, не вписывая в $abc выражение , получить последовательность 1-2-3-4-5 ?
========
Хочется научиться конструировать сложный код по частям из текстовых выражений. | |
|
|
|
|
|
|
|
для: Владимир55
(08.10.2009 в 13:16)
| | Так нельзя. Прийдётся весь код скадывать в одну переменную и исполнять. | |
|
|
|
|
|
|
|
для: Саня
(08.10.2009 в 13:42)
| | Жаль... | |
|
|
|
|
|
|
|
для: Владимир55
(08.10.2009 в 13:45)
| | Это плохой оператор. Разметку в строковой переменной не видно, ошибки, если они возникли - вам не сообщаются, отлаживать такой код очень сложно. | |
|
|
|
|
|
|
|
для: cheops
(08.10.2009 в 13:47)
| | Весьма неудобно, но я пока не вижу другого решения, поскольку код, который нужно исполнить, "сочиняет" сам скрипт исходя из внешнего задания.
Прежде я для этой цели формировал дополнительный рнр-файл, куда и записывал сформированный код. А потом этот дополнительный файл инклюдил или переходил на него, передавая данные в сессии. Это громоздко для отладки, ибо требуется последовательно вызывать несколько файлов.
Хотя и здесь - Вы правы! - не лучше. | |
|
|
|