PHP中的ArrayObject是如何工作的



我试图理解这个对象,但我无法理解一个简单的事实。If count方法显示公共属性,结果是传递的数组中的键数。在关联数组的情况下,当我试图访问一个键时,却找不到公共属性。也许我误解了界面。

//example
$currentDate = getdate();
//applying print_r() we can see the content
$objectDate = new ArrayObject();
//verifying the public properties- result is 11
$objectDate->count();
//but can't access keys like public properties
$objectDate->hours;

您可以通过将ArrayObject::ARRAY_AS_PROPS标志传递给ArrayObject构造函数来访问数组条目作为属性(->):

//example
$currentDate = getdate();
print_r($currentDate);
// create ArrayObject from array, make entries accessible as properties (read and write).
$objectDate = new ArrayObject($currentDate, ArrayObject::ARRAY_AS_PROPS);
// verifying the public methods - result is 11
print_r($objectDate->count());
print "n";
// accessing entries like public properties
print_r($objectDate->hours);

这样的类实现了ArrayAccess接口,因此您可以编写:

$objectDate['hours']

使用括号符号,但不使用箭头[->]符号。

最新更新