May 01, 2008
behavior of empty(), isset()
たまに忘れるハマりどころ。
<?php
class Foo
{
protected $values = array();
public function __set($key, $val)
{
$this->values[$key] = $val;
}
public function __get($key)
{
return (isset($this->values[$key])) ? $this->values[$key] : null;
}
}
$foo = new Foo();
$foo->a = 10;
var_dump($foo->a); // int(10)
var_dump(isset($foo->a)); // bool(false)
var_dump(empty($foo->a)); // bool(true)