PHP-使用有速度优势!而不是empty()?

时间:2019-01-24 09:09:41

标签: php performance optimization

是!运算符比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()调用会更慢,但事实并非如此。

1 个答案:

答案 0 :(得分:2)

  1. 没关系。
  2. 没关系。
  3. empty不是一个函数,它是一个语言构造。更像是运算符。
  4. 写出你的意思!empty之间的重要区别在于,使用empty是可以预期的,如果变量没有,根本不存在从本质上来说,这会关闭错误报告功能,并且如果您键入了变量名,将很难发现问题。只有在合理预期该值可能根本不存在的情况下,才使用empty
  5. 某些东西会加速预热,加速咳嗽咳嗽
  6. 没关系。

含义:在实践中,您永远不要在乎(几乎不存在,请参见3.)差异,因为对于任何事物,它都不是任何重要的标准(请参见4.)。如果您真的想知道,请深入研究C源代码。但这不是与任何编写PHP代码的人都相关的知识。