Утверждение 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
.
Проверьте остальную часть кода.