语法错误:PHP中意外的“echo”

时间:2016-05-02 11:53:44

标签: php

$_SESSION['correctAnswer'] == echo $jawaban[$i]; ? " correct" : " incorrect";行有意外的回音。请帮忙

这是我的代码:

<?php
    session_start();
    $soal = $_SESSION['soal'];
    $no = $_SESSION['no'];
    if(isset($_POST['next'])){
        $_SESSION['jawab'][] = $_POST['option'];
        if($_POST['option'] == $soal[$no-2]['kunci']){
            $_SESSION['correctAnswer'] = $soal[$no-2]['kunci']; // add sthing like this
        }
    }
    if(isset($soal[$no-1])){ 
?>

<!DOCTYPE html>
<html>
<head>
    <title>Latihan Soal</title>
</head>
<body>
<a href="index.php">Kembali ke soal 1</a>
    <form action="" method="POST">
        <p>
        <?php
            echo $no.". "; $_SESSION['no']++; 
            echo $soal[$no-1]['soal']; 
            $jawaban = $_SESSION['option'][$no-1]; 
            shuffle($jawaban); 
        ?>
         </p>
        <?php
            for ($i=0; $i < 4; $i++) {
        ?>
            <input type="radio" name="option" value="<?php echo $jawaban[$i]; ?>" required/> <?php echo $jawaban[$i]; ?></br>
        <?php
         $_SESSION['correctAnswer'] == echo $jawaban[$i]; ? " correct" : " incorrect";    
            }
         ?>

        <input type="submit" name="next" value="next">
    </form>
</body>
</html>
<?php
    }else{
        header("location:result.php");
    }
?>

3 个答案:

答案 0 :(得分:5)

您的三元运营商中有syntax error

$_SESSION['correctAnswer'] == echo $jawaban[$i]; ? " correct" : " incorrect";

你应该在三元运算符之前放置回声

echo $_SESSION['correctAnswer'] == $jawaban[$i] ? " correct" : " incorrect";

答案 1 :(得分:1)

替换此

$_SESSION['correctAnswer'] == echo $jawaban[$i]; ? " correct" : " incorrect";  

echo (($_SESSION['correctAnswer'] == $jawaban[$i]) ? " correct" : " incorrect");  

答案 2 :(得分:0)

来自可怕的PHP手册(http://php.net/manual/en/function.echo.php):

  

echo实际上不是一个函数(它是一种语言结构)

所以,它不会返回任何东西。

因为它是一种语言结构 - 你在这里得到了错误。好像你有一个意想不到的'if'或'while'。它对PHP解释器没有意义。

删除该回音。正如@ splash58所说。