我是一名学习PHP,Java的学生。但我不知道eval是否可以访问外部变量。
我的代码:
<?php
$o = "This is just test character";
$code = "echo $o;"
eval($code);
?>
&#13;
它有效吗?如果没有,我怎么能让它活跃起来? (我的目的是eval()可以访问外部变量..)
抱歉我的英语不好,而且听我说。
答案 0 :(得分:0)
除了第2行明显缺少;
您使用eval时遇到的问题是您传递的字符串无效PHP。
<?php
$o = "This is just test character";
$code = '<?php echo $o;';
eval('?>'.$code);
如果您使用双引号,它将解析为字符串,并通过错过引号再次创建无效的PHP。
<?php
$o = "This is just test character";
$code = "<?php echo '$o';";
eval('?>'.$code);
最重要的是,如果您不知道eval是如何工作的,那么您绝对不应该使用它。
答案 1 :(得分:0)
您需要将字符串放在撇号之间的 $code 变量中,然后它就会起作用。像这样:
$o = "'This is just test character'";
$code = "echo $o;";
eval($code);