示例:
$var = 'post_type_archive';
$name = 'some-archive';
$condition = 'is_'.$var;
if($condition($name))
这被认为是一个很大的"不"吗?如果是这样的话,一个人怎么能完成类似的事情呢?
当您将用法限制在某些情况下时,这并不是一种糟糕的做法。其中一种情况可能是基于给定的GET参数动态调用函数。
但我建议使用call_user_func()
。它清楚地表明了您将要做什么,并且代码可读性更强。请记住始终使用is_callable()
检查函数的存在性。
call_user_func()
将无法使用内置功能。
有时您需要这样做。只要确保你只在真正需要的时候做,因为正如评论者所说,这很容易成为可读性问题。如果要调用的可能函数列表很短,请考虑使用switch语句。
如果要这样做,需要确保动态创建的函数名始终有效,否则在运行时会出现致命错误。至少,您应该使用is_callable()
来检查该函数是否存在。