【问题标题】:Extend PHP Array with __toString()使用 __toString() 扩展 PHP 数组
【发布时间】: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


【解决方案1】:

Php 数组不是对象,它是一个有序映射。最相关的文档可能是与Arrays有关的文档

正如迈克所说,添加数组操作方法的唯一方法是使用ArrayObject,它比其他语言更接近数组。

但是:

ArrayObject 暗示使用Iterator,但它是OO。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-12
    • 2011-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多