変数に格納された文字列から関数を呼び出すにはどうすればいいですか? 質問する

変数に格納された文字列から関数を呼び出すにはどうすればいいですか? 質問する

関数を呼び出す必要がありますが、関数名は変数に格納されています。これは可能ですか? 例:

function foo ()
{
    //code here
}

function bar ()
{
    //code here
}

$functionName = "foo";
// I need to call the function based on what is $functionName

ベストアンサー1

$functionName()またはcall_user_func($functionName)

別の変数(配列形式)に格納されたパラメータを指定する必要がある場合は、配列展開演算子:

$function_name = 'trim';
$parameters = ['aaabbb','b'];
echo $function_name(...$parameters); // aaa

オブジェクトを動的に作成し、そのメソッドを呼び出すには、

$class = 'DateTime';
$method = 'format';
echo (new $class)->$method('d-m-Y');

または静的メソッドを呼び出す

$class = 'DateTime';
$static = 'createFromFormat';
$date = $class::$static('d-m-Y', '17-08-2023');

おすすめ記事