gpt4 book ai didi

php - 非常不合逻辑的 php 值比较

转载 作者:行者123 更新时间:2023-12-02 17:22:55 25 4
gpt4 key购买 nike

我偶然发现了一段非常奇怪的 PHP 代码。有人可以解释为什么会发生这种情况吗? *****奖励积分***** 如果您能告诉我为什么这很有用。

<?php
if(0=='a'){
print ord(0)." should NEVER equal ".ord('a')."<br>";
}
if(false==0){
print "false==0<br>";
}
if('a'==false){
print "a==false<br>";
}
?>

结果输出:

48 should NEVER equal 97
false==0

最佳答案

在 PHP 中,'a' 不是 ASCII 字符 a,而是字符串 a。在数字上下文中,它等于 0。例如 intval('a') 结果为 0

这很有用,因为 PHP 主要用于处理文本,人们可能想尝试一下测试 (123 == '123'),这是正确的。并且考虑到单(或双)引号中的数字被视为数字,因此将没有数值的字符串视为 0 以外的任何值是没有意义的。

哦,是的,还有一件事。 bool 上下文中的“a”是 true,而不是 false。我相信这使得某些类型的文本处理更加自然,但老实说,这么晚了我想不出一个例子。

关于php - 非常不合逻辑的 php 值比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3274307/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com