大佬教程收集整理的这篇文章主要介绍了if 语句检查字符串是否为问号,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经用 php 编程将近 15 年了,今天我问了一个让我困惑的简单问题。我需要检查字符串是否是“?”...但它不起作用。
$niveau = 0;
$result = "Original";
if($niveau == "?") $result = "Found a question";
echo "Result :".$result;
输出: 结果:发现一个问题
问题,由于 $niveau
的值是 0
,if 语句不应该改变 $retour
的值,但它确实如此!为什么?有人可以解释这种行为吗?
这是 BACkWARD Incompatible Changes 之一,它在 php 8 中工作正常,但在 php 版本
0 == "foo" // True (php < 8) / false (php 8)
这是因为,任何字符串的整数值都是0
:
<?php
echo intval("Hello"); // 0
echo intval("?"); // 0
与 0
比较得到 true
。
因此将 $niveau
转换为字符串,然后进行比较以实现向后兼容性。
<?php
$niveau = 0;
$result = "Original";
if ($niveau . "" == "?") {
$result = "Found a question";
}
echo "Result :".$result;
这给了我:
Result :Original
check here 在所有版本上!
另一种方式,对三个 ===
使用严格检查:
if ($niveau === "?")
,
您应该比较相同类型的变量。当有不同的类型时,结果可能不是你所期望的。
"0" == "?" // is false
0 == "?" // is true (php 7.3)
将字符串与 int 进行比较时,该字符串将被视为 int。
intval("?") // which is 0 (php 7.3)
所以 0 == 0
将返回真;
以上是大佬教程为你收集整理的if 语句检查字符串是否为问号全部内容,希望文章能够帮你解决if 语句检查字符串是否为问号所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。