5
<html>
<head><title></title></head>
<body>
<?php
if (isset ($_POST['posted'])) {
if ($_POST['question1'] == "Lisbon") {
  echo "You are correct, $_POST[question1] is the right answer<hr>";
}

if ($_POST['question1'] != "Lisbon") {
  echo "You are incorrect, $_POST[question1] is not. the right answer<hr>";
}
}
?>
<form method="POST" action="quiz.php">
<input type="hidden" name="posted" value="true">
What is the capital of Portugal?
<br>
<br>
<input name=''question1" type=''radio" value=''Porto''>
Porto
<br>
<input name=''question1" type="radio" value=''Lisbon''>
Lisbon
<br>
<input name="question1" type="radio" value=''Madrid''>
Madrid
<br>
<br>
<input type=''submit''>
</form>
</body>
</html>

これは全体の一部で、PDF からのものです。ただし、if ステートメントで question1 に ' ' を使用した理由は指定されていませんが、echo ステートメントでは引用符が使用されていません。

一言で言えば、なぜ $_POST['question1'] が if ステートメントに ' ' を持ち、なぜ $_POST[question1] が echo ステートメントに持っていないのかということです。それらは同じ変数です。ありがとうございました。

4

2 に答える 2

4

二重引用符で囲まれた文字列内を除き、常に引用符(文字列キーの場合)を使用します。マニュアルの文字列解析のセクションを参照してください。

$juices = array("apple", "orange", "koolaid1" => "purple");

echo "He drank some $juices[0] juice.".PHP_EOL;
echo "He drank some $juices[1] juice.".PHP_EOL;
echo "He drank some juice made of $juice[0]s.".PHP_EOL; // Won't work
echo "He drank some $juices[koolaid1] juice.".PHP_EOL;
于 2012-09-08T17:52:13.373 に答える
0

配列キーの文字はリテラルであるため、テキストには単一引用符を付ける必要があります。整数キーには引用符を付けないでください。

詳細は次のとおりです。

  • 配列のキーがアルファベット文字で始まる場合、PHP は単一引用符を付けなかった場合に、それを付けることを「理解」します。と解釈$var[key]され$var['key']ます。
  • 問題を回避するために、二重引用符で囲まれた文字列内では、配列変数を中括弧で囲みます。これは HEREDOCS でも機能します。echo "Your ID is {$user['id']}.".
  • 二重引用符を使用できますが、変数補間を行う場合以外は使用しないことをお勧めします$var["someKey$num"]。この場合でも、$var['someKey'.$num]またはを使用することをお勧めします$var["someKey{$num}"]
于 2012-09-08T18:29:34.213 に答える