在php中使用==和===运算符进行比较
在我的应用程序中,有一些在运行时生成的值,如x、1x、2、1等。 我需要比较这些: 我们知道,在php中使用==和===运算符进行比较,php,Php,在我的应用程序中,有一些在运行时生成的值,如x、1x、2、1等。 我需要比较这些: 我们知道, x == 1 is false '1x'== 1 is true '1' == 1 is true 对于我的申请,第一个、第二个案例必须是假的,第三个案例必须是真的。如果我使用== x === 1 is false '1x'=== 1 is false 1' === 1
x == 1 is false
'1x'== 1 is true
'1' == 1 is true
对于我的申请,第一个、第二个案例必须是假的,第三个案例必须是真的。如果我使用==
x === 1 is false
'1x'=== 1 is false
1' === 1 is false
所以这两个比较我都不能用
我认为转换为字符串,然后使用strcmp进行比较将是我最好的选择。请分享你的想法。非常感谢您的回复。strcmp适用于此。但是您应该知道它的返回值
如果str1小于str2,则返回<0;>如果str1大于str2,则为0;如果两者相等,则为0
或者您也可以使用Regex使用strcmp或strcasecmp:
如果str1小于str2,则返回<0;>如果str1大于str2,则为0;如果两者相等,则为0。
请尝试以下操作:
if(strlen($x) == 1) {
if ((intval($x) === 1)) {
echo "Equals";
}
else
{
echo "Not Equals";
}
}
}else
{
echo "Not Equals";
}
为什么不直接比较'1'='1',即用单引号括住1?==用于比较值,如果它们相等,并且不如===严格。我不能这样做,因为所有这些都是在运行时生成的,对生成的值没有控制权。你的意思是为所有人追加和比较吗?如果是这样的话,它会像字符串一样工作。那么,这是更好的方法还是使用strcmp?==用于比较两个值,还可以看到两个值具有相同的数据类型如果希望值完全匹配,则使用比==更好。这就是php比较的工作方式。。。。你不喜欢吗?也许换一种语言?谢谢,即使我也有同样的看法。也将等待其他一些视图。它有点复杂。@AVC对于不区分大小写的搜索,请使用strcasecmp,如回答中所述。