php eval()返回

时间:2010-10-01 18:51:32

标签: php eval

<?php
  $a = "a == a";
  eval($a);

返回false。我以为它应该回归真实。任何想法/想法为什么会这样。

3 个答案:

答案 0 :(得分:5)

直接来自PHP文档:

  

eval()返回NULL,除非在计算代码中调用return,在这种情况下返回传递给return的值。如果计算代码中存在解析错误,则eval()返回FALSE并继续执行以下代码。

看起来字符串中的某处存在语法错误。

答案 1 :(得分:1)

我认为这种使用eval()的方式可能适用于其他语言(我想到了JavaScript),但它不适用于PHP。

发出命令“评估以下表达式:a == a”是有道理的,并且是正确的。但PHP的eval()不能那样工作。将代码发送到解释器是一种简单,原始的方法。如果你eval()编辑

eval("$b = 5; $a = $b == $b;");
之后

$a会是真的。

答案 2 :(得分:0)

仍然不确定您对代码的意图,因为没有回复。如果你想知道一个变量是否等于一个同名的变量你可以通过这样做找到:

返回true:

$a = $a == $a;
var_dump($a);

返回false:

$b = 5;

$a = $a == $b;
var_dump($a);

在黑暗中为什么有人会在原帖中写下代码块。