gpt4 book ai didi

[] 中的 PHP 变量变量

转载 作者:行者123 更新时间:2023-12-04 20:12:04 26 4
gpt4 key购买 nike

感谢下面的帮助,但是,我仍然遇到一些问题,我会尝试进一步解释:

我有一个变量如下:

$value['questions'];

现在,我需要在一个循环中进行检查,所以我在循环中加入了这段代码:

if($results[$value['questions']]==4){blah blah blah};

但我遇到的问题是 $value['questions'] 的值是 q1 但我需要 q1 是一个字符串 (即引号内 '') 在代码的 $results 部分,所以 $results 元素应该是这样的...

if($results['q1']==4){blah blah blah};

目前看起来是这样的

if($results[q1]==4){blah blah blah};

有道理吗?

再次感谢您的帮助。

大家好

我希望有一个简单的解决方案!

我有一个变量:

$results['q1'];

是否可以将“q1”元素作为变量,如下所示:

$results['$i[question]'];

无法在 Google 上找到解决方案并研究 PHP 手册...

有人有建议/解决方案吗?

谢谢,

荷马。

最佳答案

是的,在访问数组元素时可以使用变量作为索引

例如,考虑这部分代码:

$results = array(
'a' => 'sentence a',
'b' => 'hello !',
);

$indice = 'a';
echo $results[$indice];

这将给出以下输出:

sentence a


这里,$indice 是一个非常简单的变量,但您可以在 [] 之间使用任何您想要的变量,例如:

  • 函数:$results[ my_function($parameter) ]
  • 数组元素:$result[ $my_array['indice'] ]
    • 您似乎想做什么?
  • 对象属性:$result[ $obj->data ]
  • ...

基本上,您几乎可以在那里使用任何您想要的东西——只要它的计算结果为标量值(即单个整数、字符串)


在您的特定情况下,您可以像这样声明 $results :

$results = array(
'q1' => 'first question',
'q2' => 'second question',
);

$i 会这样声明:

$i = array(
'question' => 'q1'
);

这意味着 $i['question'] 将是 'q1',并且以下代码部分:

echo $results[ $i['question'] ];

会给你这样的输出:

first question



编辑:要回答您在问题标题中使用的特定词,您还可以使用所谓的 variable variable 在 PHP 中:

$variable = 'a';
$indice = 'variable';
echo $results[ $$indice ];

这里:

  • $indice'变量'
  • $$indice'a'
  • 这意味着您将获得与以前相同的输出


当然,不要忘记阅读 Arrays PHP 手册的一部分。

Why is $foo[bar] wrong? 段落可能很有趣,尤其是考虑到您发布的示例。



OP编辑后的编辑:

如果 $value['questions']'q1',则以下两部分代码:

if($results[$value['questions']]==4){blah blah blah}

if($results['q1']==4){blah blah blah}

应该做完全相同的事情:使用 $results[$value['questions']],将评估 $value['questions'] 部分(到 'q1') 在表达式的其余部分之前,那个将与 $results['q1'] 相同。


例如,以下代码部分:

$results = array(
'q1' => 4,
'q2' => 6,
);
$value = array('questions' => 'q1');

if($results[$value['questions']]==4) {
echo "4";
}

输出 4

关于[] 中的 PHP 变量变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2704895/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com