2010-08-30 3 views
1

Который является правильный синтаксис для не равен операторуКакой правильный синтаксис для этого сравнительную оператора

это -> =

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 –

+0

для некоторых условий, которые я тестировал, и тогда даже если значение обоих параметров было равным, оно использовало для того, чтобы все еще вводить условие, пока я имел упоминается только для входа, если это! ==. –

+0

Я бы предположил, что последний пример должен быть '$ a === $ b' (так как иначе это будет' истина') ... В противном случае +1 ... – ircmaxell

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

При выполнении каких-либо сравнение, которое ветвится код, привыкают делать эквивалент

var_dump ($ses_startdate);

var_dump ($startdate);

Незадолго до этого состояния, сбросить значения на или поместите его в свои error_logs, чтобы вы могли видеть, что PHP оценивает типы и значения переменных.

+0

+ 1 для этой информации. –

Смежные вопросы