PHP中的三元表达式错误

时间:2013-06-13 17:53:50

标签: php ternary-operator

我道歉,但我已经尝试了从添加和删除花括号到常规关闭括号的所有内容,我真的很难过。非常感谢一如既往!

**解析错误:语法错误,top.php中的意外“回显”(T_ECHO) 第9行* *

<?php include 'header.php' ?>
    <font color=#EEEED1>
    <form method="POST">
        <p>
            <b>Your Blog Title:</b>
            <input type=text name=btitle value="<?php echo $_POST['btitle'] ?>" ><?php echo $errormsgs[0]; ?><br>
            <center>
                <textarea name=bentry cols="80" rows="20">
                    <?php ($_POST['bentry'] ? echo {$_POST['bentry']} : echo ("What's on your mind?");) ?>
                </textarea><br><br>
            </center>
            <?php echo $errormsgs[1]; ?>
            <input type=radio name=color value="Red" checked><font color="Red"> Red</font><br>
            <input type=radio name=color value="Yellow"><font color="Yellow"> Yellow</font><br>
            <input type=radio name=color value="Blue"><font color="Blue"> Blue</font><br>
            <center>
                <input type=submit value="Create Blog!">
            </center>
        </p>
    </form>
    </font>
<?php include 'footer.php' ?>

3 个答案:

答案 0 :(得分:2)

要正确执行此表达式,您应该将行更改为:

<?php echo (isset($_POST['bentry'])) ? $_POST['bentry'] : "What's on your mind?"; ?>

答案 1 :(得分:0)

我建议:

echo isset($_POST['bentry']) ? $_POST['bentry'] : "What's on your mind?";

答案 2 :(得分:0)

echo $_POST['bentry'] ? $_POST['bentry'] : "What's on your mind?"

自5.3以来你可以将它缩短为

echo $_POST['bentry'] ?:  "What's on your mind?";

注意:这些语句都没有实际检查是否变量isset(),而是变量是否等于true。

如果你需要检查实际设置变量的位置,那么你必须先检查然后回显:

echo isset($_POST['bentry']) ? $_POST['bentry'] : "What's on your mind?"