1

是否有一个 PHP 函数或命令运行基于字符串、数组或类似的函数?基本上,如果字符串“时间”被传递,我想time()被返回。理想情况下,我希望它也支持传递的参数。不过,我只是希望这适用于个别功能。出于显而易见的原因,我不想eval()使用整个代码块。

是否存在这样的东西——或者,最好是——它是 PHP 原生的吗?

4

2 回答 2

3

尝试 call_user_func() http://php.net/manual/en/function.call-user-func.php

第一个参数是一个表示函数名的字符串。第二个参数可以是单个参数,也可以是参数数组。

编辑:

正如您所要求的,它甚至会支持像 time() 这样的本机函数。像这样试一试:

echo call_user_func( 'time' );
于 2012-07-28T05:47:47.897 回答
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 回答