可変関数の実行についてのメモです。
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 件のコメント:
コメントを投稿