phpに関する質問です。printなどの予約関数は


print "hoge";

などと、print("hoge");の()を省略することができると思いますが、
ユーザー定義関数で同様に()を省略することはできないんでしょうか。
何か手段があればお教えください。
よろしくお願いいたします。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2010/06/06 17:27:58
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:anoncom No.1

回答回数16ベストアンサー獲得回数2

ポイント60pt

http://jp.php.net/print

上記リファレンスページにも書かれていますが、printやecho、require、includeなどの一部の命令は

正確には関数ではなく、言語構造として組み込まれています。

classやpublic、abstractなどの予約キーワードと同じような扱いですね。

そのためこれらの言語構造文の場合は、()を省略して書くことが可能となっています。

ここからは私の勝手な見解ですが、printやechoなどの命令は上記のように本来関数ではなく

言語構造文なのですが、利便性の問題から関数としても動作するように組み込まれているものと思われます。

id:n_maco2

なるほど、そもそも関数ではないんですね。

納得しました、ありがとうございます。

2010/06/06 17:27:38

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません