×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
PHPでは変数に関数名を設定し、その変数の後に括弧(())を付けることで、変数に設定された関数を実行します。 これは、似た様な関数を作成した時に、何かの条件で関数の実行振り分ける時に使えるかと思います。
以下の例では、2個の関数を宣言し、関数名の配列を宣言し、繰り返し処理でそれぞれの関数を実行しています。
<?php //最初の関数宣言 function func1() { echo "func1......<br>"; } //2番目の関数宣言 function func2() { echo "func2******<br>"; } //関数名を配列に設定 $arr = array("func1", "func2"); //配列を順次処理する foreach ($arr as $strFuncName) { //関数を実行 $strFuncName(); } ?>
結果は以下の表示になります。
func1...... func2******
それぞれの関数が実行されたことが分かります。
可変関数の方法をクラスにも適用できます。 可変関数の様に別名のクラスを用意し、同じメソッドを持たせてみます。
<?php //最初のクラス宣言(メソッド1個のみ) class test1 { function hello() { echo "test1 : hello<br>"; } } //2番目のクラス宣言 class test2 { function hello() { echo "test2 : hello<br>"; } } //クラス名を配列に設定 $arrClass = array("test1", "test2"); //配列を順次処理する foreach ($arrClass as $strClassName) { //クラス生成 $test = new $strClassName; //メソッド呼び出し $test->hello(); //クラスのインスタンス廃棄 unset($test); } ?>
この結果は以下の様に、クラスが順次生成され、「hello」メソッドが呼び出されることが分かります。
test1 : hello test2 : hello
PR
コメント