在php中使用==和===运算符进行比较

在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、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    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,如回答中所述。