许多经验丰富的开发人员都知道,功能defined()
的速度比其他检查慢19倍。
我遇到了一个问题,我需要循环处理5000多个记录,并按顺序进行7次defined()
检查,并放慢整个项目的进度。
在这种情况下,无法更改项目工作方式或分块方式。是否有一些好的解决方案或想法如何避免使用defined()
函数?
答案 0 :(得分:0)
您尝试使用
constant ( string $name ) : mixed
返回常量的值,如果常量不是,则返回NULL 定义。
鉴于在php中null == false
if (defined($name))
和
if (constant($name))
答案 1 :(得分:0)
我测试类似:
if(!defined('TEST')) continue;
和
if(!@TEST) continue;
和
if(NULL === @constant('TEST')) continue;
我对PHP 7.1的测量是if(!@TEST) continue;
比if(NULL === @constant('TEST')) continue;
快,但两者都比if(!defined('TEST')) continue;
慢
似乎我们还没有更快的解决方案,define()
仍然是检查常量的更快方法。