【发布时间】:2012-09-13 11:03:35
【问题描述】:
我正在尝试理解 ArrayObject::STD_PROP_LIST 常量, 正如它在手册中定义的那样:
对象的属性在作为列表(var_dump、foreach 等)访问时具有其正常功能。
我写了这段代码:
$array = array(5,7,9,3,6,5,4);
$arrayObj = new ArrayObject($array);
var_dump($arrayObj);
$arrayObj2 = new ArrayObject($arrayObj->getArrayCopy(), ArrayObject::STD_PROP_LIST);
var_dump($arrayObj2);
在第一个 var_dump 我们可以看到数组元素,但在第二个 var_dump 你看不到它们,我还测试了 foreach 和 foreach 循环对 arrayObj 对象和 arrayObj2 对象都有效。
如果有人可以向我解释什么是正常功能以及为什么没有显示第二个 var_dump 元素,谢谢大家,祝你有美好的一天。
【问题讨论】:
-
您的代码对我有用。两个 var_dump 看起来都一样:phpfiddle.org/main/code/7x3-dkd
-
我可以重现它,PHP 5.3.3-1ubuntu9.10。 print_r 和 count() 有效,但 var_dump 无效
-
谢谢大家的回答,我使用的是 PHP 版本 5.4.3,但可以说它是一个错误,STD_PROP_LIST 的手动定义中提到的正常功能是什么,如果有人可以解释请给我。
标签: php spl arrayobject