$_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");
}
?>
答案 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所说。