使用 print 時要小心。由於 print 是一個語言結構而不是函式,因此參數周圍的括號不是必需的。
事實上,使用括號可能會導致與函式語法混淆,因此應該省略。
大多數人會預期以下行為
<?php
if (print("foo") && print("bar")) {
// 已印出 "foo" 和 "bar"
}
?>
但由於參數周圍的括號不是必需的,它們會被解釋為參數的一部分。
這表示第一個 print 的參數是
("foo") && print("bar")
而第二個 print 的參數只是
("bar")
若要讓第一個範例產生預期的行為,您需要這樣寫
<?php
if ((print "foo") && (print "bar")) {
// 已印出 "foo" 和 "bar"
}
?>