[PHP]echoやprintは関数なのか?それとも言語構造なのか?

PHPではechoを使っても、printを使っても画面に文字を出力することができます。
これらはecho( “aaa” )のような形式で文字出力が行えるため、関数のように感じますが、実はどちらも関数ではなく言語構造です。

言語構造というのは、if/functioin/returnと同じように、プログラム言語の一部として組み込まれているという意味です。


言語構造であることは、PHPのオフィシャルドキュメントでも明記されています。

echo は実際には関数ではありません (言語構造です)。
このため、使用する際に括弧は必要ありません。 
(いくつかの他の言語構造と異なり) echo は関数のように動作しません。
そのため、 関数のコンテキスト中では常に使用することができません。 
加えて、複数のパラメータを指定して echo をコールしたい場合、括弧の中にパラメータを記述してはいけません。


http://php.net/manual/ja/function.echo.php

printは実際には関数ではありません (言語構造です)。
このため、引数を括弧で括る必要はありません。


http://php.net/manual/ja/function.print.php

関連記事

コメントを残す

メールアドレスが公開されることはありません。