【发布时间】:2014-01-30 14:18:16
【问题描述】:
有没有办法使用 __toString() 函数/方法来扩展原生 PHP 数组?
我希望能够做到
$a = array($x, $y, $z);
echo $a;
这不应该抱怨Array to string conversion 通知或Array 的枯燥输出,而是做我在数组的 __toString() 方法中实现的任何事情。
(在 __toString 中,我会执行类似遍历数组并在每个元素上调用 __toString() 并将其连接到描述整个数组的字符串。)
(我知道这可以通过例如包装对象来完成,这不是问题。我想在更微妙的层面上调整 PHP。)
【问题讨论】:
-
不是原生没有扩展 - 你可以使用 ArrayObject
-
使用
echo implode('',$a);? -
如果数据包含 csv 元数据,使用
implode()可能会导致无法恢复 -serialize()更安全。但是,要使用任意编码方案,array_reduce()可能是正确的方法。
标签: php arrays tostring extending