- var_dump: documentation ( source)
<?php
class TestKey {
private $data = array();
public function __set($name, $value) {
$this->data[$name] = $value;
}
public function __get($name) {
return @$this->data[$name];
}
/** As of PHP 5.1.0 */
public function __isset($name) {
if (array_key_exists($name, $this->data)) {
return true;
}
return false;
}
/** As of PHP 5.1.0 */
public function __unset($name) {
unset($this->data[$name]);
}
}
class TestValue {
private $data = array();
public function __set($name, $value) {
$this->data[$name] = $value;
}
public function __get($name) {
return @$this->data[$name];
}
/** As of PHP 5.1.0 */
public function __isset($name) {
return isset($this->data[$name]);
}
/** As of PHP 5.1.0 */
public function __unset($name) {
$this->data[$name] = null;
}
}
$k = new TestKey();
$v = new TestValue();
$k->foo = $v->foo = "bar";
var_dump(isset($k->foo) === isset($v->foo));
$k->foo = $v->foo = null;
var_dump(isset($k->foo) === isset($v->foo));
unset($k->foo, $v->foo);
var_dump(isset($k->foo) === isset($v->foo));