【发布时间】:2012-12-03 02:21:12
【问题描述】:
我有一些数据表示为多维数组。我想将这些数据嵌入到我的 OO 应用程序中,并为这些数据提供额外的功能,但也想通过传统的随机访问和使用迭代器来访问它(所以我可以使用 foreach)。换句话说我想为多维数组实现一个包装类。
我已经尝试过的:
我。数组访问
这个问题是服务器使用的是PHP 5.2.17,&offsetGet()报错,无法通过引用返回,也就是无法实现多维元素访问:
$obj[$key1][$key2] = $value;
请注意,目前不能选择升级到较新的 PHP 版本
二。使用魔法方法 这有点棘手,但是当我尝试使用变量作为键时,我的问题就出现了。例如
$obj->$key1[$key2] = $value;
解释器首先评估$key1[$key2] 并抛出一个通知并返回$key1 的第一个字符,并将其用作我数组上的键。这个我也不知道怎么解决。我曾想过使用方括号来强制操作优先级,但这与我下次尝试的问题相同:
三。使用简单的 get 和 set 函数 再说一次,旧的 PHP。写的时候哭了:
$obj->get($key1)[$key2] = $value;
因为它不知道如何索引以圆括号结尾的表达式。
还有一个万无一失的选择:将数组公开并一起忘记 OO。但在我去那里之前,我想确定真的没有其他方法可以做到这一点。
【问题讨论】:
标签: php arrays oop multidimensional-array