gpt4 book ai didi

php - call_user_func() 和 $var() 之间有区别吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:01:49 28 4
gpt4 key购买 nike

call_user_func() 和它的语法糖版本之间有什么区别吗...

// Global function

$a = 'max';

echo call_user_func($a, 1, 2); // 2
echo $a(1, 2); // 2

// Class method

class A {

public function b() {
return __CLASS__;
}

static function c() {
return 'I am static!';
}

}

$a = new A;
$b = 'b';

echo call_user_func(array($a, $b)); // A
echo $a->$b(); // A

// Static class method

$c = 'c';

echo call_user_func(array('A', $c)); // I am static!
echo a::$c(); // I am static!

codepad .

两者输出相同,但我是recently hinted (仅限 10k+ 代表)它们等同。

那么,如果有的话,有什么区别?

最佳答案

我能想到的第一个区别是 call_user_func() 运行 method 作为回调。

这意味着你可以使用闭包,例如

echo call_user_func(function($a, $b) {
return max($a, $b);
}, 1, 2);

不过,与使用或性能(执行)相比,这更像是一种实现差异。

关于php - call_user_func() 和 $var() 之间有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5061774/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com