gpt4 book ai didi

php - PHP 中的 is_callable 和 function_exists 到底有什么区别?

转载 作者:IT王子 更新时间:2023-10-29 00:01:48 25 4
gpt4 key购买 nike

我正在开发一个项目,其中我使用了旧版本中已弃用的函数。但是如果在旧版本中使用,我不希望我的脚本停止。

所以我正在检查该函数是否存在,如果不存在则创建它。

PHP 中function_existsis_callable 有什么区别,哪个更好用?

if (!is_callable('xyz')) {
function xyz() {
// code goes here
}
}

if(!function_exists('xyz')) {
function xyz() {
// code goes here
}
}

最佳答案

函数is_callable不仅接受函数名,还接受其他类型的 callbacks :

  • Foo::方法
  • array("Foo", "method")
  • array($obj, "method")
  • 闭包和其他可调用对象 (PHP 5.3)

因此 is_callable 接受您可以传递的任何内容 call_user_func和家人,同时function_exists仅告知某个函数是否存在(不是方法,参见 method_exists,也不是闭包)。

换句话说,is_callablezend_is_callable 的包装器,它使用伪类型回调处理变量,而 function_exists 只执行 hash table lookup在函数表中。

关于php - PHP 中的 is_callable 和 function_exists 到底有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3499736/

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