这个 if 语句如何评估为真?
Posted
技术标签:
【中文标题】这个 if 语句如何评估为真?【英文标题】:How can this if-statement evaluate to true? 【发布时间】:2013-08-27 14:50:22 【问题描述】:if ($opts['width'] == 'fs' || $opts['height'] == 'fs' || $opts['ratio'] == 'fs')
var_dump($opts); // result of this see bellow
var_dump($opts)
inside (!) if 语句的结果:
array(3)
'width' => int(200)
'height' => int(0)
'ratio' => int(0)
这怎么可能?数组的值都不是(搅拌)fs?
【问题讨论】:
尝试使用===
! ideone.com/EpsAH2
【参考方案1】:
因为0 == 'fs'
。请参阅此conversion table。
php 有 ===
运算符来比较值 和 类型。
更多表格:Type-juggling and (strict) greater/lesser-than comparisons in PHP
【讨论】:
感谢您提供转换表链接。但在我看来,这在某种程度上很奇怪。 0 不应该对(字符串)'fs' 进行评估。无论如何,我已经保存了链接以供将来使用! @mcj:在 PHP 中,如果A == B
和 B == C
并不意味着 A == C
。以上是关于这个 if 语句如何评估为真?的主要内容,如果未能解决你的问题,请参考以下文章