次のサンプルコードがあります
<?php
class Test {
function foo() {
print "foo\n";
}
function bar() {
$func = 'foo';
$func();
}
}
$test = new Test();
$test->bar()
これは を呼び出し$test-bar()
、内部的には という名前の変数 php 関数を呼び出しますfoo
。この変数には文字列が含まれておりfoo
、関数を here のようfoo
に呼び出す必要があります。期待される出力を得る代わりに
foo
エラーが発生します:
PHP Fatal error: Call to undefined function foo() ...
関数名に文字列を使用する場合、これを正しく行うにはどうすればよいですか? 文字列「func」は、実際のコードのクラス スコープ内のいくつかの異なる関数を表す場合があります。
ドキュメントによると、上記は多かれ少なかれコーディングしたように機能するはずです...