【发布时间】:2013-06-02 05:09:50
【问题描述】:
我浏览了几个类似的问题,但它们都只陈述事实:
好的,我明白了。它解释了当'00001' == '1' 返回TRUE 时发生的什么。
问题是:为什么 PHP 会这样做?
探测字符串是否为数字的原因是什么,如果是,则进行强制转换?为什么我们不能只比较两个字符串呢?
如果两个操作数具有不同的类型,我可以相当理解需要什么转换。但是,当两者都是字符串时,为什么它会“usual math”呢?
【问题讨论】:
-
因为他们没有从 Perl 那里得到提示。 :P 像“
==比较数字,eq比较词汇,===比较严格”这样说会容易得多。 (虽然如果我们有前两个,后者可能永远不需要使用。嗯,也许与对象。)
标签: php casting comparison string-comparison