- var_dump: documentation ( source)
<?php
class ArrayObjectChild extends ArrayObject {
public function offsetExists($offset) {
var_dump('Called: '.__METHOD__);
return parent::offsetExists($offset);
}
public function offsetGet($offset) {
var_dump('Called: '.__METHOD__);
return parent::offsetGet($offset);
}
}
class ArrayAcessImplementation implements ArrayAccess {
private $_array = array();
public function __construct(array $array) {
$this->_array = $array;
}
public function offsetExists($offset) {
var_dump('Called: '.__METHOD__);
return array_key_exists($offset, $this->_array);
}
public function offsetGet($offset) {
var_dump('Called: '.__METHOD__);
return $this->_array[$offset];
}
public function offsetSet($offset, $value) {}
public function offsetUnset($offset) {}
}
$array = array('foo' => '');
echo "ArrayObject: empty string is set, but empty:\n";
$object = new ArrayObject($array);
var_dump(isset($object['foo']), empty($object['foo']));
echo "ArrayObject extended: empty string is set, but not empty\n";
$object = new ArrayObjectChild($array);
var_dump($object['foo'], isset($object['foo']), empty($object['foo']));
echo "ArrayAccess implemented: empty string is set, but empty\n";
$object = new ArrayAcessImplementation($array);
var_dump(isset($object['foo']), empty($object['foo']));