huhu ihr liebe,
momentan raubt mir php bisl die nerven. in javascript etc gibt es ja array-objekte, die auch immer über die referenz angesprochen werden. in php muss man dies ja zwangsweise mit dem & machen. bei google fand ich, das objekte immer als referenz zurückgegeben werden und dazu eine interface namens ArrayAccess. leider erfüllt das nicht so wirklich meine erwartungen:
PHP-Code:
<?php
class ObjArray implements ArrayAccess {
protected $array = array();
public function offsetExists($offset) {
return array_key_exists($this->array, $offset);
}
public function offsetGet($offset) {
return $this->array[$offset];
}
public function offsetSet($offset, $value){
if (is_null($offset)) {
$this->array[] = $value;
} else {
$this->array[$offset] = $value;
}
}
public function offsetUnset($offset) {
unset($this->array[$offset]);
}
}
$ObjArray = new ObjArray();
$ObjArray['meep']['meep']['meep'] = 1;
print_r($ObjArray);
$PHPArray = array();
$PHPArray['meep']['meep']['meep'] = 1;
print_r($PHPArray);
?>
Zitat:
ObjArray Object
(
[array rotected] => Array
(
)
)
Array
(
[meep] => Array
(
[meep] => Array
(
[meep] => 1
)
)
)
|
wie man sehen kann, lässt sich das normale array verschachteln, das objarray leider nicht.... seltsamerweise wird die methode offsetSet auch nicht aufgerufen.
im großen und ganzen ist das ja ein schönes interface, nur leider scheint es nicht so flexibel zu sein, wie das javascript array-obj. gibts sonst noch eine andere möglichkeit ?
EDIT: ok, hab da was anderes gefunden: ArrayObject hat genau das was ich suche O.o hab ich grade wohl übersehen :3