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