PHP マニュアル
前のページ | 第 17章関数 | 次のページ

# 可変関数

PHP は可変関数(variable functions)の概念をサポートします。 これにより、変数名の後に括弧が付いている場合、その値が何であろうと PHPは、同名の関数を探し実行を試みます。 この機能は、コールバック、関数テーブル等を実装するために使用可能です。

可変関数は、echo(), unset(), isset(), empty(), include(), print() のような言語構造と組み合わせて使用する ことはできません。これらの言語構造を可変変数として使うには 独自のラッパ関数を使う必要があります。

例 17-11. 可変関数の例

`<?php function foo() { echo "In foo()<br>\n"; } function bar($arg = '') { echo "In bar(); argument was '$arg'.<br>\n"; } // This is a wrapper function around echo function echoit($string) { echo $string; } $func = 'foo'; $func(); // This calls foo() $func = 'bar'; $func('test'); // This calls bar() $func = 'echoit'; $func('test'); // This calls echoit() ?>`

オブジェクトのメソッドを可変関数を使ってコールすることもできます。

例 17-12. 可変メソッドの例

`<?php class Foo { function Var() { $name = 'Bar'; $this->$name(); // Bar() メソッドのコール } function Bar() { echo "This is Bar"; } } $foo = new Foo(); $funcname = "Var"; $foo->$funcname(); // $foo->Var() をコールしている ?>`

可変変数や function_exists()も参照してください。

前のページ | ホーム | 次のページ
返り値 | 上に戻る | 内部（ビルトイン）関数