作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我偶然发现了一段非常奇怪的 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/
CSS: .banner:nth-of-type(1) {background-color:red;} .banner:nth-of-type(2) {background-color:blue;}
在处理 vector.size() aka size_type 时,我需要一些帮助来澄清这个奇怪的比较 vector rebuiltFaces; int rebuildIndex = 1; cout
我认为我在 Java 类 AccessToken 中的 IBM Social Business Toolkit SDK 的方法中发现了错误。有方法 isExpired(int Threshold) 问
我是一名优秀的程序员,十分优秀!