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


print "hoge";

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

回答の条件
  • 1人2回まで
  • 13歳以上
  • 登録:2010/06/06 16:01:59
  • 終了:2010/06/06 17:27:58

ベストアンサー

id:anoncom No.1

あのん回答回数16ベストアンサー獲得回数22010/06/06 17:20:32

ポイント60pt

http://jp.php.net/print

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

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

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

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

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

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

id:n_maco2

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

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

2010/06/06 17:27:38

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

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません