提问人:KonKarOtMa 提问时间:9/26/2022 更新时间:9/26/2022 访问量:33
PHP错误或只是一个逻辑缺陷
PHP bug or just a logical flaw
问:
我需要知道为什么,真正的逻辑原因,下面的比较正在执行“回声”线!这似乎是某种巫术。如果你去掉“+”号,它将不起作用。如果你保持原样,它会的!
<?php
$fromUnits = "2";
$toUnits = "100000000+";
if ($fromUnits >= $toUnits) {
echo "Bypassed."; // WHY?
}
?>
答:
2赞
David
9/26/2022
#1
如果这两个字符串值能够被强制转换为数值,则将它们作为数字进行比较。而且这个数字确实大于这个数字.100000000
2
但是,如果两个字符串都不能被强制转换为数字,则将它们作为字符串进行比较。并且字符串“大于”字符串,按字母顺序排序。"2"
"100000000+"
评论
0赞
KonKarOtMa
9/27/2022
这怎么不被认为是一个缺陷?
0赞
David
9/27/2022
@KonKarOtMa:我想这是PHP语言维护者们的意见问题。我个人是现在更严格的类型检查的粉丝,但PHP远非唯一具有各种类型强制规则的语言。
评论
"2" < "a lot"
"2" > "!"
100000000+
"2" != "two"
"TWO" < "two"