1

文字列、配列などに基づいて関数を実行する PHP 関数またはコマンドはありますか? 基本的には「time」という文字列を渡せtime()ば返してもらいたい。理想的には、これが渡されたパラメーターもサポートすることを望みます。ただし、これを個々の機能用にしたいだけです。eval()明らかな理由から、コードのブロック全体は必要ありません。

このようなものは存在しますか? あるいは、できれば PHP のネイティブですか?

4

2 に答える 2

3

関数名を含む変数を使用して関数を呼び出したり、その関数にパラメーターを渡すことができます。試す:

<?php

$func = 'strtoupper';

$res = $func('i am uppercase');

echo $res; // I AM UPPERCASE

可変関数可変変数も参照してください。前述のように、call_user_func()動作します。

安全のために、次のように呼び出すことができます。

if (function_exists($func)) { ... }

関数を呼び出す前に、エラーを回避するようにしてください。ReflectionFunctionAbstract::getNumberOfParameters関数が受け入れるパラメーターの数を決定するために使用することもできます。

于 2012-07-28T06:05:41.897 に答える
3

call_user_func() http://php.net/manual/en/function.call-user-func.phpを試す

最初の引数は、関数名を表す文字列です。2 番目の引数は、単一の引数または引数の配列にすることができます。

編集:

ご質問のとおり、time() などのネイティブ関数もサポートします。次のように試してみてください:

echo call_user_func( 'time' );
于 2012-07-28T05:47:47.897 に答える