2010-08-30 46 views
1

哪一项是正确的语法正确的语法不等于操作这是本comparsion操作

本 - > =

if($ses_startdate != $startdate) { 
       echo "I am true"; 
      } 

或本! - > ==

if($ses_startdate !== $startdate) { 
       echo "I am true"; 
      } 

我一直在使用!==早些时候,它的工作没有任何问题,但不是它创造了一些条件的问题,当我改变它!=它工作正常..为什么?

回答

7

!==!=更严格,!==也检查数据类型。 例子:

$a = 1; 
$b = '1'; 
$c = 1; 
$d = TRUE; 
// These are true: 
$a == $c; 
$a == $b; 
$a === $c 
$a == $d; 
// but these are FALSE: 
$a === $b; 
$a === $d; 
+1

http://php.net/manual/en/language.operators.comparison.php – 2010-08-30 14:51:17

+0

对于某些条件,我测试了它,然后即使两个参数的值相等,它仍用于输入条件,而我有如果是的话,只提到输入!==。 – 2010-08-30 14:52:07

+0

我假设最后一个例子应该是'$ a === $ b'(否则就是'true')...否则,+1 ... – ircmaxell 2010-08-30 14:53:09

1
$a = ''; 
$b = false; 

if($a != $b) 
    //it is not executed since $a and $b are the same (empty) but have different types. 

if($a !== $b) 
    //it is executed, because $a is a string and $b is boolean, even though both of them represent the same value (empty). 

因此,第三=告诉PHP来检查类型了。

1

$ses_startdate != $startdate

在做这fork了你的代码进行任何比较,习惯做的

var_dump ($ses_startdate);

var_dump ($startdate);

只是在此之前,条件等同,自卸值设置到页面或将其放入您的error_logs中,以便您可以看到PHP在评估变量的类型和值。

+0

+ 1的信息。 – 2010-08-30 15:08:39