PHP可以eval()访问外部变量吗?

时间:2017-10-02 04:49:17

标签: php eval

我是一名学习PHP,Java的学生。但我不知道eval是否可以访问外部变量。

我的代码:



<?php
$o = "This is just test character";

$code = "echo $o;"

eval($code);
?>
&#13;
&#13;
&#13;

它有效吗?如果没有,我怎么能让它活跃起来? (我的目的是eval()可以访问外部变量..)

抱歉我的英语不好,而且听我说。

2 个答案:

答案 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);