如何在PHP中动态定义一个变量

3

有没有一种方法可以根据另一个变量的值来命名或定义变量?

我有一个存储在 $row[1] 中的 MySQL 结果集。

我试图通过将变量的开头与 $row[1] 的值连接起来来动态命名一个变量,如下所示:

$sampleVar.$row[1] = 'a string';

但是出现了以下错误:

致命错误:只有变量才能通过引用传递...

更多信息:

我预定义了这些变量:

$sampleVar01 = '';
$sampleVar02 = '';
$sampleVar03 = '';
$sampleVar04 = '';

$row[1]的结果实际上会是"01"、"02"、"03"或者"04"。


3
不要这样做。只需使用一个数组。以后您会感激我的建议:$sampleVar[$row[1]] = 'a string'; - AbraCadaver
不确定你的意思@AbraCadaver。我的插图和问题只是想找出我是否可以动态地构建一个变量,(at)LucM帮助我实现了这一点。我的脚本和用法比这个简单的例子要复杂得多。在我的脚本中,每个$sampleVar99实际上都是数组。但对于我的问题的本质,(at)LucM展示了如何做到这一点。老实说,我太深入其中并且过度思考了。来自(at)LucM的新鲜眼睛帮助我真正看到了解决方案。我感谢他的帮助。 - H. Ferrence
1个回答

1

你所寻找的被称为变量变量

$var = $sampleVar.$row[1]
$$var = 'a string';

编辑

在您进行编辑之后,这是您需要做的:

$var = 'sampleVar' . $row[1];
$$var = 'a string';
echo $sampleVar01;

啊,我没有。但是我现在会告诉 @LucM。 - H. Ferrence
没有生效。我收到了这个错误 注意:未定义变量:sampleVar in - H. Ferrence
当然,你的变量 sampleVar$row[1] 必须被定义。 - Luc M
如果需要更多信息来回答我的问题,“这是否可以实现”,请查看我在原始问题中的“更多信息”。 - H. Ferrence
感谢 @LucM 的编辑。我现在会尝试一下。 - H. Ferrence
太棒了,@LucM 给了我很好的帮助,那就是答案。现在我们只需要等待“不那么出色”的 SO 允许我接受你的答案作为答案。谢谢!! - H. Ferrence

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接