関数の呼び出し方(変数と括弧)
2008/04/02 | PHPの基本
以前、文字列操作関数substrの特別な場合として以下のような記述方法について記事を書いた。
$variable=’abcdefg';
print($valiable{3});
// 結果は「d」が表示される
変数名に{}をつけることで関数の代わりになるというお話しだった。
今回あるプログラムを読んでいて、こんな記述を見つけた。
$variable();
変数名に()って・・・今度は何?、と思って調べたらこれは以下のようなことだった。
$variable=’abcdefg';
$valiable();
// こちらはabcdefg()という関数が実行される
もちろんabcdefg()という関数が定義されていないとエラーになる。call_user_func関数の代わりに使うのだろうか。いずれにしてもプログラムの可読性が悪くなるような気がしないではない。