答案 0 :(得分:9)
1===1
产生值true
,当转换为字符串时为'1'
。
1===0
产生值false
,当转换为字符串时为''
。
您的调用等效于eval('1')
和eval('')
。第一个是不完整 PHP代码,因为它缺少;
。第二个就是什么也不做。由于无所事事,eval
返回false
。
您必须将 string 传递给eval
,这就是重点。
答案 1 :(得分:3)
答案 2 :(得分:2)
PHP eval()构造用于将输入字符串评估为PHP,然后对其进行处理。 Eval()不是函数,但从某种意义上说,它就像输出任何东西一样工作—除了将其输出为文本而不是将其输出为要执行的PHP代码之外,其他方式都是如此
尝试
var_dump(eval("1===1;"));
答案 3 :(得分:0)
1 === 0 is false
1===1 is true
因此,如果您尝试执行此代码,您将获得相同的结果
eval(false); //false equal to empty string so it don't throw error
eval(true); //true is not valid php code, thats why error throwed
运算符必须用分号分隔
eval(1===1 . ';'); //this is valid php code
eval('1===1;'); //this is also valid php code