Утверждение 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>'; }
$admin – string :
($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 .
Проверьте остальную часть кода.