ホームページ >バックエンド開発 >PHPチュートリアル >print は関数ではありません
これは一見奇妙な質問から来ています:
if (print("1\n") && print("2\n") && print("3\n") && print("4\n")) { ; }
このコードは何を出力すると思いますか?
実際の出力は次のとおりです。
4 111
私たちは、print が文法構造 (言語構造) であり、関数ではなく、パラメーターのリストに括弧が必要ないことを多くの場合無視します (括弧を書いた場合でも、括弧は同様に使用します)構文解析段階では無視されます)、これは常に 1 を返す単なる「式 (expr)」です:
expr : T_PRINT expr | '(' expr ')' ; 所以其实上面的代码在php看来是: if (print ("1\n" && print ("2\n" && print ("3\n" && print "4\n")))) { ; }
したがって、4 を出力し、次に「3」を出力します。&& print の結果は次のようになります。 1、次に "2\n" && 1 が出力され、最後に "1\n" && 1
そして、上記のコードの意図を達成したい場合は、次のように記述する必要があります。
うわー以上がprint は関数ではありませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。