print "hoge";
などと、print("hoge");の()を省略することができると思いますが、
ユーザー定義関数で同様に()を省略することはできないんでしょうか。
何か手段があればお教えください。
よろしくお願いいたします。
上記リファレンスページにも書かれていますが、printやecho、require、includeなどの一部の命令は
正確には関数ではなく、言語構造として組み込まれています。
classやpublic、abstractなどの予約キーワードと同じような扱いですね。
そのためこれらの言語構造文の場合は、()を省略して書くことが可能となっています。
ここからは私の勝手な見解ですが、printやechoなどの命令は上記のように本来関数ではなく
言語構造文なのですが、利便性の問題から関数としても動作するように組み込まれているものと思われます。
なるほど、そもそも関数ではないんですね。
納得しました、ありがとうございます。