使用 print 时要小心。由于 print 是语言结构而不是函数,因此不需要围绕参数的括号。
事实上,使用括号会导致函数语法的混淆,并且应省略。
大多数人会期望以下行为
<?php
if (print("foo") && print("bar")) {
// "foo" 和 "bar" 已打印
}
?>
但由于围绕参数的括号不是必需的,因此它们被解释为参数的一部分。
这意味着第一个 print 的参数是
("foo") && print("bar")
而第二个 print 的参数只是
("bar")
要获得第一个示例的预期行为,您需要编写
<?php
if ((print "foo") && (print "bar")) {
// "foo" 和 "bar" 已经打印
}
?>