- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在开发一个项目,其中我使用了旧版本中已弃用的函数。但是如果在旧版本中使用,我不希望我的脚本停止。
所以我正在检查该函数是否存在,如果不存在则创建它。
PHP 中function_exists
和is_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")
因此 is_callable
接受您可以传递的任何内容 call_user_func
和家人,同时function_exists
仅告知某个函数是否存在(不是方法,参见 method_exists
,也不是闭包)。
换句话说,is_callable
是 zend_is_callable
的包装器,它使用伪类型回调处理变量,而 function_exists
只执行 hash table lookup在函数表中。
关于php - PHP 中的 is_callable 和 function_exists 到底有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3499736/
为什么我们需要检查用户定义函数的 function_exists?内部或核心 PHP 函数看起来没问题,但如果用户知道并自己定义了一个函数,那么为什么还需要检查它是否存在? 下面是自定义的用户定义函数
我想知道 function_exists()在内部缓存其查询? 最佳答案 No, it does not.它只是检查函数是否在函数表中定义。很简单。 然而,the Zend Opcache exten
如果我使用 function_exists 如下: if ( ! function_exists( 'get_value' ) ) : function get_value( $field )
我有一些代码,我只想在存在 curl_init() 时执行。我正在使用此代码检查它是否存在: if(function_exists('curl_init')) { $c = curl_init
我正在尝试检查一个函数是否存在,但我的 if 中总是报错 我尝试这样调用函数,其中$function 是函数名: if (function_exists($this->module->$functio
代码如下: < ?php if (!function_exists("T7FC56270E7A70FA81A5935B72EACBE29")) { function T
这个问题已经有答案了: How do I check if a variable exists? (15 个回答) 已关闭 7 年前。 有类似 function_exists 的东西吗?在 PHP 中
我偶然发现了 PHP 5.6 中 php 函数 function_exists() 的奇怪行为。问题是,如果我直接将函数名称参数作为字符串提供,结果将不同于作为变量提供的结果。这是代码: $f='po
我正在 asp.net/c# 中寻找这两个函数的替代方法。 if(function_exists('foo')) { $returned = foo($bar); } if(class_exi
我正在开发一个项目,其中我使用了旧版本中已弃用的函数。但是如果在旧版本中使用,我不希望我的脚本停止。 所以我正在检查该函数是否存在,如果不存在则创建它。 PHP 中function_exists 和i
我正在开发一个项目,其中我使用了旧版本中已弃用的函数。但是如果在旧版本中使用,我不希望我的脚本停止。 所以我正在检查该函数是否存在,如果不存在则创建它。 PHP 中function_exists 和i
我已经使用 apt-get install lamp-server 在 ubuntu 16.04 上安装了 lamp stack,PHP 正在运行,但 function_exists('mysql_c
我是一名优秀的程序员,十分优秀!