在PHP中调用用户函数vs变量变量
call_user_func和使用变量之间是否存在显著差异 以这样一个类为例:在PHP中调用用户函数vs变量变量,php,Php,call_user_func和使用变量之间是否存在显著差异 以这样一个类为例: class someClass{ protected function action_this() { ... } protected function action_that() { ... } } 这是更好还是更有效 class myClass extends someClass{ public function doAction($action='this'){
class someClass{
protected function action_this() { ... }
protected function action_that() { ... }
}
这是更好还是更有效
class myClass extends someClass{
public function doAction($action='this'){
$method="action_{$action}";
if(is_callable (array($this,$method)) ){
call_user_func(array($this,$method));
}
}
}
是否存在一种情况比另一种更可取?您的示例不够清晰 通常,最好有一些可理解的代码:
$callback = array($this, $method):
if (is_callable($callback)) {
call_user_func($callback);
}
但是,根据口味,您可能更喜欢:
if (is_callable($callback)) {
$callback();
}
我不喜欢这一个而喜欢另一个,但要买一个有效的
也就是说,在这种情况下,我会尽量不使用魔法,我个人更喜欢通过定义的名称而不是变量来调用显式定义的方法。只是为了不引入难以调试的魔法。您的示例不够清晰 通常,最好有一些可理解的代码:
$callback = array($this, $method):
if (is_callable($callback)) {
call_user_func($callback);
}
但是,根据口味,您可能更喜欢:
if (is_callable($callback)) {
$callback();
}
我不喜欢这一个而喜欢另一个,但要买一个有效的
也就是说,在这种情况下,我会尽量不使用魔法,我个人更喜欢通过定义的名称而不是变量来调用显式定义的方法。只是为了不引入难以调试的魔力。如果要向函数传递参数,您认为哪种更合适或更易于使用?好吧,
call\u user\u func
只是一种较旧的方法,这是在添加变量函数之前唯一的方法。现在我会使用变量函数。如果你向函数传递参数,你认为哪一种更合适或更容易使用?好吧,call\u user\u func
只是一种较旧的方法——这是在他们添加变量函数之前唯一的方法。现在我将使用变量函数。