我有一个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] 后,是否存在下划线问题?
答案 0 :(得分:3)
$question[$x]
指的是一个数组,其中$ x是索引。
即:
$question[0] = "How old are you?";
$question[1] = "Male or Female?";
您拥有它的方式,$question[$x]_answer
不是有效的variable,索引必须在最后。你不能拥有[或]变量名。
如果您有一系列答案,也许可以尝试将变量重命名为$question_answer[$x]
。
即:
$question_answer[0] = "12";
$question_answer[1] = "Male";
如果您已经使用索引对变量进行了硬性命名,则可以使用variable variable: 即:
$question_0_answer = "12";
$question_1_answer = "Male"
为此,您可以使用:$question_{$x}_answer
答案 1 :(得分:3)
这是一个非常有效的问题。我没有看到任何理由进行投票。
这就是你要使用的:${$question[$x].'_answer'}
。
让我用一个例子来解释,
$a[1] = 'user';
$b = 1;
所以,
$a[$b] == 'user'; //true
如果
$user_ans = 'success';
我们可以像
一样使用它${$a[$b].'_ans'} == 'success'; //true
正如@DavidHoude在评论中指出的那样,这是 Variable Variables
的一个例子答案 2 :(得分: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
看起来更有效的东西(最后一个可能是你想要的)。