此代码是一个示例。 通过使用此类类,您可以有机会创建扩展其他类但具有扩展 ArrayObject 类的大部分功能的类(例如多重继承)
<?php
class foo
{
public $foo = 'foo';
} class foobar extends foo implements ArrayAccess,IteratorAggregate,Countable
{
public function offsetExists($offset)
{
$array = array(1, 2, 3, 4);
return array_key_exists($offset, $array);
}
public function offsetGet($offset)
{
$array = array(1, 2, 3, 4);
return $array[$offset];
}
public function offsetSet($offset, $value)
{
}
public function offsetUnset($offset)
{
}
function count()
{
$array = array(1, 2, 3, 4);
return count($array);
} function getArray()
{
return array(1, 2, 3, 4);
} function getIterator()
{
return new ArrayIterator(array(1, 2, 3, 4));
} function __toString()
{
return 'String test';
} } $foobar = new foobar();
print $foobar[0].'<br/>';
print $foobar->foo.'<br/>';
print count($foobar).'<br/>';
foreach ($foobar as $k=>$v)
{
print $k.'=>'.$v.'<br/>';
} var_dump($foobar->getArray());
print $foobar;
?>
为了正确使用,您必须定义所有这些方法,除了 getArray()
浏览 SPL 的源代码,这将非常有帮助。
ps: 对我的英语感到抱歉