2014-12-04 1 views
0

У меня действительно странная проблема, и я довольно смущен, работая над этим некоторое время. У меня есть это условиеPHP Входит в «if», хотя условие не может быть истинным

 $save_res = $database->saveShift(); 
     if ($save_res == "SHIFT_CONFLICT") { 
      $errors['insertShift'] = "error msg"; 
      echo $save_res; 
      $valid = false; 
     } else if ($save_res) { 
      $notices['insertShift'] = "success msg"; 
      $valid = true; 
     } 

Теперь странная часть: $save_res is definitely not "SHIFT_CONFLICT", но верно или «1», когда я эхо его (внутри если заявление), но если $save_res == "SHIFT_CONFLICT" условие истинно по какой-то причине, а код внутри оператора if выполняется.

+4

Во-первых, используйте '' ===. –

+1

И не используйте эхо для отладки, 'var_dump' нуждается в некоторой любви. – Rangad

+0

true == "SHIFT_CONFLICT" имеет значение true, но true === "SHIFT_CONFLICT" является ложным. Поэтому использование идентично (===), а не euqals to (==), как указано в The Paramagnetic .... – Lekhnath

ответ

1

изменение

if ($save_res == "SHIFT_CONFLICT") { 

в

if ($save_res === "SHIFT_CONFLICT") {