1

次の行を実行する FOR があります。

        for ($x=1;$x<=10;$x++) 
    {
        $result=$question[$x]."<br /><b>Correct Answer: ".$question[$x]_answer."</b><br />";
        echo $resultado;
    } 

たとえば、$question[$x]_answer$answer[x]に変更すると、すべてが機能します。私の質問は、[x] の後にアンダースコアを付けた場合、なぜ機能しないのかということです。[x]_answerに関する部分。変数に[x]を使用した後のアンダースコアに問題はありますか?

4

3 に答える 3

3

$question[$x]$x がインデックスである配列を参照します。

すなわち:

$question[0] = "How old are you?";
$question[1] = "Male or Female?";

あなたが持っている方法$question[$x]_answerは、有効な変数ではありません。インデックスは最後に来る必要があります。変数名に [ または ] を含めることはできません。

$question_answer[$x]答えの配列がある場合は、変数の名前を に変更してみてください。

すなわち:

$question_answer[0] = "12";
$question_answer[1] = "Male";

または、すでにインデックスを使用して変数にハードネームを付けている場合は、可変変数を使用できます。

$question_0_answer = "12";
$question_1_answer = "Male"

これには、次を使用します。$question_{$x}_answer

于 2012-08-14T01:15:32.597 に答える
3

その完全に有効な質問です。反対票を投じる理由がわかりません。

これはあなたが使うものです: ${$question[$x].'_answer'}.

例を挙げて説明すると、

$a[1] = 'user';
$b = 1;

そう、

$a[$b] == 'user'; //true

で、もし

$user_ans = 'success';

それを次のように使用できます

${$a[$b].'_ans'} == 'success'; //true

@DavidHoude がコメントで指摘したように、これは 可変変数の例です。

于 2012-08-14T01:21:35.570 に答える
0

_PHP では特別な意味を持たないため、他の標準文字と同じです。あなたのロジックは、次のいずれかと同じです

$question[$x]Qanswer
$question[$x]Aanswer
etc...

変数は[]、または$(これらは特殊です) を使用できないため、これらのいずれも有効ではありません。

$my[varたとえば、やのような変数を持つことはできません$my$var

したがって$question[$x]_answer、php には単一の変数のように見えますが、その中に無効なトークンが含まれているか ( [$x])、または配列のように見え、$question[$x]奇妙なものが添付されています (スペースが欠落している、またはドットがあるなど)。

例えば、

$question[$x] answer
$question[$x].answer

より有効なもののように見えます(最後のものはおそらくあなたが望むものです)。

于 2012-08-14T01:22:29.690 に答える