为什么以下代码无法编译:
<?php
$str = "echo \"ok\"";
$func = "eval";
$func ($str);
?>
php 告诉我 eval 是未定义的。
为什么以下代码无法编译:
<?php
$str = "echo \"ok\"";
$func = "eval";
$func ($str);
?>
php 告诉我 eval 是未定义的。
在 PHP 中,eval
是“语言构造”,而不是函数。(注意它在语法高亮编辑器中变成关键字颜色。)不能使用变量函数语法调用语言结构,也不能$func()
与其他特定于函数的东西一起使用,例如is_callable()
.
从http://www.php.net/manual/en/functions.variable-functions.php:
变量函数不适用于诸如 echo、print、unset()、isset()、empty()、include、require 等语言结构。利用包装函数将这些结构中的任何一个用作变量函数。
eval
不是一个函数,它是一个语言结构,变量函数不适用于语言结构。
你错了..代码,也许像例子..
<?php
$eval_code = '$my_name = "Swashata";' .
'$your_name = "John";' .
'return $your_name;' .
'echo $my_name;';
$the_name = eval( $eval_code );
echo '<p>$the_name has got a value ' . $the_name . '</p>';
?>