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