[英]PHP syntax error when using 1===1 but not when 1===0
1===1
导致值为true
,当转换为字符串时为'1'
。
1===0
导致值为false
,当转换为字符串时为''
。
您的调用等同于eval('1')
和eval('')
。 第一个是不完整的 PHP代码,因为它缺少了一个;
。 第二个是什么都没有,什么都不做。 eval
碰巧因无所事事而返回false
。
你必须将一个字符串传递给eval
,这就是它的全部要点。
应使用引号""/''
来调用eval ,而不是你要做的。 假设你使用错误的构造,假设它的运气由于某种原因是false
。
写它的正确方法是:
var_dump(eval("return 1===1;"));
PHP eval ()构造用于将输入字符串计算为PHP,然后对其进行处理。 Eval()不是一个函数,但它在输出所有东西的意义上就像一个函数 - 除了不输出它作为文本,它输出它作为要执行的PHP代码
尝试
var_dump(eval("1===1;"));
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.