2016-05-02 14 views
-5

$_SESSION['correctAnswer'] == echo $jawaban[$i]; ? " correct" : " incorrect";行に予期しないエコーがあります。恐ろしいPHPマニュアル(http://php.net/manual/en/function.echo.php)から構文エラー:PHPの予期しない "echo"

<?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"); 
    } 
?> 
+0

なぜ、そこにエコーを使用していますか? –

+4

は 'echo'を削除します。 – splash58

+0

あなたはこれをしたいと思います: 'echo $ _SESSION ['correctAnswer'] == $ jawaban [$ i]? "correct": "incorrect"; ' – Paul

答えて

0

::これは私のコードである

を助けてください

echo is not actually a function (it is a language construct)

だから、それは何も返しません。

そして、それは言語構成であるため、ここではエラーが発生しています。あたかも予期しない「if」や「while」があるかのように。 PHPインタプリタには意味がありません。

そのエコーを削除します。 @ splash58が言ったように。

5

syntax errorがあなたの三項演算子であります。

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

この

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

は、 ";" '$ jawaban [$ i]; after too – olibiaz

+0

ありがとう@olibiaz - 私はそれを見つけなかった、それは今修正されました。 – KEK

1

などの三項演算子は

この

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

を交換する前に、エコー置く必要があります