Andreika
"PHP for nubies" reader
Объект в массив - проблема с наследованием от ArrayObject
необходимо, чтобы объект можно было использовать как массив, причем не только для foreach. примерно так
но с небольшими дополнениями.. до которых не получается доползти, т.к. ни при наследовании ни при реализации этих интерфейсов никакая функция (кроме конструктора) не вызывается
вывод: __construct
вопрос - что я делаю не так?
необходимо, чтобы объект можно было использовать как массив, причем не только для foreach. примерно так
PHP:
class A extends ArrayIterator {
protected $b;
public function __construct() {
$this->b = new stdClass();
parent::__construct($this->b);
$this->b->a = 11;
}
}
$arr = new A();
$c = (array)$arr;
var_dump($c);
json_encode($arr);
PHP:
class test extends ArrayObject {// or ArrayIterator or implements IteratorAggregate, ArrayAccess , Countable {
protected $obj = null;
public function __construct() {
echo __FUNCTION__;
}
public function current ( ) {
echo __FUNCTION__;
}
public function key ( ) {
echo __FUNCTION__;
}
public function next ( ) {
echo __FUNCTION__;
}
public function rewind ( ) {
echo __FUNCTION__;
}
public function seek ( $int ) {
echo __FUNCTION__;
}
public function valid ( ) {
echo __FUNCTION__;
}
public function count() {
echo __FUNCTION__;
}
public function offsetExists ( $offset ) {
echo __FUNCTION__;
}
public function offsetGet ( $offset ) {
echo __FUNCTION__;
}
public function offsetSet ( $offset , $value ) {
echo __FUNCTION__;
}
public function offsetUnset ( $offset ) {
echo __FUNCTION__;
}
public function getIterator() {
echo __FUNCTION__;
}
}
$test = new test();
$t = (array)$test;
вопрос - что я делаю не так?
