私がという名前の関数を持っていると仮定しましょうprintuser()
今私がのような文字列を持っている場合
$myFunction = 'printuser()';
この文字列を関数として実行するにはどうすればよいですか?だからそれはprintuser()
機能を果たすべきです
私がという名前の関数を持っていると仮定しましょうprintuser()
今私がのような文字列を持っている場合
$myFunction = 'printuser()';
この文字列を関数として実行するにはどうすればよいですか?だからそれはprintuser()
機能を果たすべきです
実行する関数を指定したいだけ$myFunction
の場合は、次のようなことができます。
$myFunction = 'printuser';
$myFunction();
これは「変数関数」と呼ばれ、。よりも少し危険性が低くなりeval
ます。(既存の関数を呼び出すことはできますが、任意のコードを実行することはできません。)
ただし、注意が必要です。printuser
存在しない場合、スクリプトは停止します。関数を呼び出す前に、関数の存在を確認することを検討してください。
$myFunction = 'printuser';
if (function_exists($myFunction))
$myFunction();
else
throw new BadFunctionCallException("Function '$myFunction' doesn't exist");
throw
関数がない場合は、を実行したいものに置き換えます。それはほんの一例です。
あなたが試すことができます
$myFunction = 'printuser()';
# Remove brakets
$myFunction = rtrim($myFunction, "()");
# Call Function Directly
$myFunction();
検証には、次を使用できますis_callable
is_callable($myFunction) and $myFunction();