忍者ブログ

VB.NET-TIPS などプログラミングについて

VB.NETのTIPS(小技集)を中心に、Javascript、PHP その他のプログラミングについて少し役に立つ情報を発信します。いわゆる個人的な忘備録ですが、みなさんのお役に立てれば幸いです。

【PHP】可変変数と可変クラスの使い方について

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

コメント

コメントを書く