function track_times() {
static $i = 0;
$i++;
static $i = 5;
return $i;
}
echo track_times() . "\n";
echo track_times() . "\n";
Run Code Online (Sandbox Code Playgroud)
结果是:
6
7
Run Code Online (Sandbox Code Playgroud)
我知道人们不会static以这种方式使用变量,只是无法解释结果.结果意味着第二个赋值生效,但$i在赋值之前自行递增,那么为什么第一次调用函数会返回6?
在比较之后==或===进行比较时放置变量真的很重要吗?
if (null == $var) {
}
if ($var == null) {
}
Run Code Online (Sandbox Code Playgroud)
我经常看到编码员更喜欢这种方式,是不是速度差异?
更新:
对不起,我没有做出清楚我的问题,我想知道是不是之间的不同==和===,但这样的表达式null == $var和$var == null,所以我已经改变了代码示例.
结论:
没有功能或性能差异.有些人认为这是最佳做法或仅仅是编码风格.BTW它有一个很酷的名字:尤达条件:)
仅供参考:PHP错误消息使用此样式,例如
PHP Fatal error: Cannot use isset() on the result of an expression (you can use "null !== expression" instead)
Run Code Online (Sandbox Code Playgroud)
不知道为什么这个问题被标记为重复(3个不同的等于)不是(' = = $ $ var'和'$ var === false'之间有什么区别?)