php(复杂)动态变量名构造

标签 php

我在尝试构造变量名称时遇到了这个问题 (应该输出相应的数组元素。)

我首先设置用于测试目的的变量,通常,piece 变量将保存数组 $piece 的第一个元素。

$wordnumber = 0;
$piece[0] = "forever";

我稍后在出现问题之前回显它们,看看它们是否仍然正常。

echo "$piece[0]";
echo "$wordnumber";

输出正常。

forever0

但是问题来了,因为我试图创建一个自动处理每个数组元素的函数,所以我希望它每次都能构造下一个相应的变量。 但是不知何故,它在构建后就没有任何值(value)

$name = ${'piece[' . $wordnumber . ']'};
echo "$name";

没有输出任何内容...

我尝试了很多不同的格式,我真的不知道为什么我在这里如此失败。 顺便说一句,该代码现在不属于任何函数。

更新: $name = $piece[$wordnumber] 解决了问题 我很好奇为什么我之前的格式没有按预期工作。

更新:André 解决了问题,问题是 $piece[0] 实际上并不是数组的一部分。所以 $piece 是实际变量。存储实际数组后 $piece = array("Redish", "Yellow", "Green");在开始时并使用全局 $piece;在我的职能中,一切都开始像魅力一样发挥作用。

最佳答案

我还没有测试过代码,但我认为你的第一种方法不起作用,因为你的变量名称是“piece”,而不是“piece[0]”。换句话说, ${'piece'}[0] 应该可以工作,但 ${'piece[0]'} 是错误的。尝试将其添加到脚本的最开头,PHP 应该会向您显示一些提示:

error_reporting(E_ALL);
ini_set("display_errors", 1);

关于php(复杂)动态变量名构造,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9470420/

相关文章:

php - bash arobase 包装一个字符串

PHP 执行 ('git' )失败

php - Laravel 路由资源销毁不起作用

php - DOMDocument > setAttribute() > bool 属性?

php - 使用 PHP 检测图像中的主要颜色

php - Bootstrap 多级下拉不起作用

php - NULL 默认值不一致,并且更新将 NULL 更改为空字符串 Laravel4

php - 可以使用哪些优秀的 PHP 分析器?

php - 从具有 belongsToMany 关系的相关 laravel 模型中获取 ids 数组

PHPUnit 提示 Selenium