2012/03/08

【PHP】可変関数を実行する

可変関数の実行についてのメモです。

PHPでは変数名の後に「()」が付いている場合
変数の値と同名の関数をコールします。
可変関数は、メンバ関数も関数同様にコールすることができます。
また、スタティック関数もコールできますが、public以上のアクセスレベルだと実行できません。

こんな感じです。
<?php

class variableFunction
{
    public function disp($str)
    {
        echo $str;
    }

    public static function disp2($str);
    {
        echo $str;
    }
}

function disp($str)
{
    echo $str;
}


$func = 'disp';
$str  = '表示';

// 通常の関数をコール
$func($str);

// インスタンスを生成したクラス関数をコール
$vF = new variableFunction;
$vF->$func($str);

// variableFunctionクラスのスタティック関数をコール
$func2 = "disp2";
variableFunction::$func2($str);
※echo(), unset(), isset(), empty(), include(), print()のような言語構造と  組み合わせることはできません。 終わり

0 件のコメント:

コメントを投稿