diff options
Diffstat (limited to 'tests/classes/array_access_011.phpt')
-rwxr-xr-x | tests/classes/array_access_011.phpt | 187 |
1 files changed, 0 insertions, 187 deletions
diff --git a/tests/classes/array_access_011.phpt b/tests/classes/array_access_011.phpt deleted file mode 100755 index 20d39568ba..0000000000 --- a/tests/classes/array_access_011.phpt +++ /dev/null @@ -1,187 +0,0 @@ ---TEST-- -ZE2 ArrayAccess and ArrayAccessReferenceProxy with references to main array ---FILE-- -<?php - -// NOTE: This will become part of SPL - -class ArrayAccessReferenceProxy implements ArrayAccess -{ - private $object; - private $oarray; - private $element; - - function __construct(ArrayAccess $object, array &$array, $element) - { - echo __METHOD__ . "($element)\n"; - $this->object = $object; - $this->oarray = &$array; - $this->element = $element; - } - - function offsetExists($index) { - echo __METHOD__ . "($this->element, $index)\n"; - return array_key_exists($index, $this->oarray[$this->element]); - } - - function offsetGet($index) { - echo __METHOD__ . "($this->element, $index)\n"; - return isset($this->oarray[$this->element][$index]) ? $this->oarray[$this->element][$index] : NULL; - } - - function offsetSet($index, $value) { - echo __METHOD__ . "($this->element, $index, $value)\n"; - $this->oarray[$this->element][$index] = $value; - } - - function offsetUnset($index) { - echo __METHOD__ . "($this->element, $index)\n"; - unset($this->oarray[$this->element][$index]); - } -} - -class Peoples implements ArrayAccess -{ - public $person; - - function __construct() - { - $this->person = array(array('name'=>'Foo')); - } - - function offsetExists($index) - { - return array_key_exists($index, $this->person); - } - - function offsetGet($index) - { - if (is_array($this->person[$index])) - { - return new ArrayAccessReferenceProxy($this, $this->person, $index); - } - else - { - return $this->person[$index]; - } - } - - function offsetSet($index, $value) - { - $this->person[$index] = $value; - } - - function offsetUnset($index) - { - unset($this->person[$index]); - } -} - -$people = new Peoples; - -var_dump($people->person[0]['name']); -$people->person[0]['name'] = $people->person[0]['name'] . 'Bar'; -var_dump($people->person[0]['name']); -$people->person[0]['name'] .= 'Baz'; -var_dump($people->person[0]['name']); - -echo "===ArrayOverloading===\n"; - -$people = new Peoples; - -var_dump($people[0]); -var_dump($people[0]['name']); -$people[0]['name'] = 'FooBar'; -var_dump($people[0]['name']); -$people[0]['name'] = $people->person[0]['name'] . 'Bar'; -var_dump($people[0]['name']); -$people[0]['name'] .= 'Baz'; -var_dump($people[0]['name']); -unset($people[0]['name']); -var_dump($people[0]); -var_dump($people[0]['name']); -$people[0]['name'] = 'BlaBla'; -var_dump($people[0]['name']); - -?> -===DONE=== -<?php exit(0); ?> ---EXPECTF-- -string(3) "Foo" -string(6) "FooBar" -string(9) "FooBarBaz" -===ArrayOverloading=== -ArrayAccessReferenceProxy::__construct(0) -object(ArrayAccessReferenceProxy)#1 (3) { - ["object:private"]=> - object(Peoples)#2 (1) { - ["person"]=> - &array(1) { - [0]=> - array(1) { - ["name"]=> - string(3) "Foo" - } - } - } - ["oarray:private"]=> - &array(1) { - [0]=> - array(1) { - ["name"]=> - string(3) "Foo" - } - } - ["element:private"]=> - int(0) -} -ArrayAccessReferenceProxy::__construct(0) -ArrayAccessReferenceProxy::offsetGet(0, name) -string(3) "Foo" -ArrayAccessReferenceProxy::__construct(0) -ArrayAccessReferenceProxy::offsetSet(0, name, FooBar) -ArrayAccessReferenceProxy::__construct(0) -ArrayAccessReferenceProxy::offsetGet(0, name) -string(6) "FooBar" -ArrayAccessReferenceProxy::__construct(0) -ArrayAccessReferenceProxy::offsetSet(0, name, FooBarBar) -ArrayAccessReferenceProxy::__construct(0) -ArrayAccessReferenceProxy::offsetGet(0, name) -string(9) "FooBarBar" -ArrayAccessReferenceProxy::__construct(0) -ArrayAccessReferenceProxy::offsetGet(0, name) -ArrayAccessReferenceProxy::offsetSet(0, name, FooBarBarBaz) -ArrayAccessReferenceProxy::__construct(0) -ArrayAccessReferenceProxy::offsetGet(0, name) -string(12) "FooBarBarBaz" -ArrayAccessReferenceProxy::__construct(0) -ArrayAccessReferenceProxy::offsetUnset(0, name) -ArrayAccessReferenceProxy::__construct(0) -object(ArrayAccessReferenceProxy)#1 (3) { - ["object:private"]=> - object(Peoples)#2 (1) { - ["person"]=> - &array(1) { - [0]=> - array(0) { - } - } - } - ["oarray:private"]=> - &array(1) { - [0]=> - array(0) { - } - } - ["element:private"]=> - int(0) -} -ArrayAccessReferenceProxy::__construct(0) -ArrayAccessReferenceProxy::offsetGet(0, name) -NULL -ArrayAccessReferenceProxy::__construct(0) -ArrayAccessReferenceProxy::offsetSet(0, name, BlaBla) -ArrayAccessReferenceProxy::__construct(0) -ArrayAccessReferenceProxy::offsetGet(0, name) -string(6) "BlaBla" -===DONE=== |