2016-05-02 6 views
-5

есть неожиданное эхо на линии $_SESSION['correctAnswer'] == echo $jawaban[$i]; ? " correct" : " incorrect";. пожалуйста, помогитеСинтаксическая ошибка: неожиданное «эхо» в PHP

это мой код:

<?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»: «false»; ' – Paul

ответ

0

от ужасного PHP инструкции (http://php.net/manual/en/function.echo.php):

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];' слишком – olibiaz

+0

Спасибо @olibiaz - я этого не заметил, теперь он исправлен. – KEK

1

Заменить этот

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

с

echo (($_SESSION['correctAnswer'] == $jawaban[$i]) ? " correct" : " incorrect"); 
Смежные вопросы