|
|
|
|
для: ref
(24.07.2004 в 10:22)
|
| Функция eval позволяет интерпретировать строку, переданную ей в качестве аргумента как PHP-код. Внутри строки действуют те же правила, что и в обычных строках PHP обрамлённых двойными кавычками, т.е. действуют те же экранирующие символы.
Код
<?php
$id_menu = 3;
// Первый символ будет интерпретироваться как знак $, а
// вместо $id_menu будет подставлено значение 3.
eval("\$active$id_menu = 1;");
?>
|
аналогичен
Если экранирование знака $ (\$) в первом примере убрать, то выражение будет интерпретироваться как 3 = 1, так как подстрока $action будет интерпретироваться как переменная, которую PHP создаст и присовит ей пустую строку.
PS Использовать или нет функцию eval дело вкуса и стиля, лично я ей предпочитаю конструкцию $$:
<?php
$id_menu = 3;
$str = "active$id_menu";
$$str = 1; // $active3 = 1;
?>
|
Но и функция eval и конструкция $$ несколько запутывают код и без сильной необходимости ими лучше не пользоваться. | |
|
|