PHP:我的elseif语句被忽略了

时间:2014-01-05 14:24:54

标签: php if-statement

我的elseif语句被忽略了。 ifelse工作但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>';
}

4 个答案:

答案 0 :(得分:3)

$adminstring

($admin === "3")

$adminint

($admin === 3)

请尝试var_dump() 并检查$location

答案 1 :(得分:0)

($admin === "3")

应该是

($admin == "3")

答案 2 :(得分:0)

请注意

==运算符只是检查左右值是否相等。但是,===运算符实际上会检查左右值是否相等,并检查它们是否属于同一变量类型。

我认为你有这样的事情:

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

所以它的第一个条件为真($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>';
    }

答案 3 :(得分:0)

我跑了这个:

<?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。请参阅here

使用:

<?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

请检查您的其余代码。