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 为索引的数组。

IE:

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

你拥有它的方式$question[$x]_answer不是一个有效的变量,索引必须在最后。变量名中不能有 [ 或 ]。

$question_answer[$x]如果您有一系列答案,也许可以尝试将您的变量重命名为。

IE:

$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...

这些都不是有效的,因为变量不能使用[, ], or $(这些是特殊的)。

例如,您不能有类似$my[varor的变量$my$var

因此$question[$x]_answer,要么看起来像 php 的单个变量,但其中包含无效标记(the [$x]),要么看起来像一个数组,$question[$x]附加了一些奇怪的东西(比如缺少空格或点)。

例如,

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

看起来更有效的东西(最后一个可能是你想要的)。

于 2012-08-14T01:22:29.690 回答