是!运算符比empty()快?
测试!运算符:
$start_ts = microtime(true);
$someVar = true;
$_10M = 10000000;
for($i = 0; $i < $_10M; $i++) {
if(!$someVar) {
}
}
$end_ts = microtime(true);
die(var_dump($end_ts - $start_ts));
测试empty():
$start_ts = microtime(true);
$someVar = true;
$_10M = 10000000;
for($i = 0; $i < $_10M; $i++) {
if(empty($someVar)) {
}
}
$end_ts = microtime(true);
die(var_dump($end_ts - $start_ts));
它们都需要大约1.3秒才能运行。
为什么函数调用不会比使用!操作员?调用Empty()是否没有开销?
我认为empty()调用会更慢,但事实并非如此。
答案 0 :(得分:2)
empty
不是一个函数,它是一个语言构造。更像是运算符。!
和empty
之间的重要区别在于,使用empty
是可以预期的,如果变量没有,根本不存在从本质上来说,这会关闭错误报告功能,并且如果您键入了变量名,将很难发现问题。只有在合理预期该值可能根本不存在的情况下,才使用empty
。含义:在实践中,您永远不要在乎(几乎不存在,请参见3.)差异,因为对于任何事物,它都不是任何重要的标准(请参见4.)。如果您真的想知道,请深入研究C源代码。但这不是与任何编写PHP代码的人都相关的知识。