我知道isset()和empty()的基准测试,但是我有一些需要在参数为空时才执行的代码。这是一个会被多次执行的函数,所以我想进行优化。
我知道isset()比empty()更快,但是!isset()和=== null呢?我知道变量将存在,因此我只需要将其与null进行测试。
我在考虑!操作符可能带来的惩罚。
我知道isset()和empty()的基准测试,但是我有一些需要在参数为空时才执行的代码。这是一个会被多次执行的函数,所以我想进行优化。
我知道isset()比empty()更快,但是!isset()和=== null呢?我知道变量将存在,因此我只需要将其与null进行测试。
我在考虑!操作符可能带来的惩罚。
我觉得让别人来测试这个有点懒,所以我自己尝试了一百万次迭代。
两者之间的差异微不足道,因此使用!isset()是一个更好的选择,因为如果变量未定义,===null会抛出一个错误。
一百万次迭代:
!isset() .1118
=== null .1046
顺便提一下,对于"!"运算符也有一个(同样微不足道的)惩罚。
isset() .1118
!isset() .1203
=== null
更快,但如果该值未设置,则会引发错误。但是,如果您在脚本开始时将变量设置为 null(因此您确定变量将具有值或 null),则可以使用比较运算符,这更快。但差异真的很小,最好选择代码可读性。 - vdegenneisset($a, $b, $c)
仅在 所有 变量都被设置时返回 true,并在遇到任何未设置的变量时立即返回 false,从左到右进行检查。换句话说:isset() 可以用一个参数列表替换多个类似的!== null
检查,并且对于可读性来说绝对更好。 - Claus Due