gpt4 book ai didi

php - if 语句检查字符串是否为问号

转载 作者:行者123 更新时间:2023-12-04 07:56:42 25 4
gpt4 key购买 nike

我已经用 PHP 编程将近 15 年了,今天我问了一个让我困惑的简单问题。我需要检查字符串是否是“?”...但它不起作用。

$niveau = 0;
$result = "Original";
if($niveau == "?") $result = "Found a question";
echo "Result :".$result;
输出:
结果:发现问题
问题,自值 $niveau0 ,if 语句不应更改 $retour 的值,但确实如此!为什么?有人可以解释这种行为吗?

最佳答案

这是其中之一 Backward Incompatible Changes ,这在 PHP 8 中工作正常,但在 PHP 版本 < 8 中无效。这里的问题是您将字符串与数字进行比较,可能会出错。

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 === "?")

关于php - if 语句检查字符串是否为问号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66665495/

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