非严格相等比较
问题描述:
今天,我正在探索symfony的回购和发现@Seldaek一些引入请求他交换与值的变量,你可以看到波纹管:非严格相等比较
有$var === true
和true === $var
有什么区别?
答
没有功能差异,它是一种编码风格,称为yoda conditions。
人们使用它来避免在常量第二时通常不会被编译器拾取的条件中的意外分配。
这是一个有效的语句,将很难调试时,竟然指望它来执行比较:
if ($var = 12) {}
这是无效的声明,并会引发错误
if (12 = $var) {}
为我们不能将变量赋值为12.
true == $ var被称为**尤达风格** - 在谷歌或这里读取https://en.wikipedia.org/wiki/Yoda_conditions – nospor
什么是最奇怪的回合的变化是,他们没有改变周围的港口条件? 443是一个常量,你可能希望它们也可以在$ port变量之前切换它们......除非这是在稍后的提交中完成的......实际上非常奇怪。 –