PHP: моя инструкция elseif игнорируется

Утверждение elseif игнорируется. Работа if и else но elseif , не работает.

 if ($location === "Canterlot") { echo "you cannot add a thread here..."; } elseif ($admin === "3") { echo '<form action="" method="post"> <input type="text" name="thread_name" value="comment"> <textarea name="thread"></textarea> <input type="submit" value="Comment"/> </form>'; } else { echo '<form action="" method="post"> <input type="text" name="thread_name" value="comment"> <textarea name="thread"></textarea> <input type="submit" value="Comment"/> </form>'; } 

Обратите внимание, что

Оператор == только проверяет, равны ли левое и правое значения. Но оператор === фактически проверяет, равны ли левое и правое значения, а также проверяет, имеют ли они один и тот же тип переменной.

Я думаю, у вас есть что-то вроде этого:

  $location = "Canterlot" and $admin ="3"; 

Таким образом, он будет иметь первое условие true ( $location == "Canterlot" ), и он никогда не проверяет else if ($admin =="3")

Вы можете попробовать что-то вроде этого:

  if($location === "Canterlot" && $admin !== "3"){ echo "you cannot add a thread here..."; }else if ($admin === "3"){ echo '<form action="" method="post"> <input type="text" name="thread_name" value="comment"> <textarea name="thread"></textarea> <input type="submit" value="Comment"/> </form>'; }else{ echo '<form action="" method="post"> <input type="text" name="thread_name" value="comment"> <textarea name="thread"></textarea> <input type="submit" value="Comment"/> </form>'; } 

Обновить:

Если $admin – intteger, тогда выполните следующие действия:

  if($location === "Canterlot" ){ echo "you cannot add a thread here..."; }else if ($admin == "3"){ echo '<form action="" method="post"> <input type="text" name="thread_name" value="comment"> <textarea name="thread"></textarea> <input type="submit" value="Comment"/> </form>'; }else{ echo '<form action="" method="post"> <input type="text" name="thread_name" value="comment"> <textarea name="thread"></textarea> <input type="submit" value="Comment"/> </form>'; } 

$adminstring :

 ($admin === "3") 

$admin – это int :

 ($admin === 3) 

Попробуйте var_dump() и проверьте значение $location .

 ($admin === "3") 

должно быть

 ($admin == "3") 

Я запустил это:

 <?php $location = 'foo'; $admin = '3'; if ($location === "Canterlot") { echo 'didn\'t get it'; } elseif ($admin === '3') { echo 'got it'; } else { echo 'didn\'t get it'; } 

И выход got it . См. Здесь .

С:

 <?php $location = 'foo'; $admin = 3; if ($location === "Canterlot") { echo 'didn\'t get it'; } elseif ($admin === 3) { echo 'got it'; } else { echo 'didn\'t get it'; } 

Выход также got it .

Проверьте остальную часть кода.