php で未定義のプロパティに値をセットしたりゲットしたり。これで ruby みたいな getter や setter が作れる。けど面倒くさいなぁ
<?
class Hoge
{
private $message = 'hello, world!';
function __get($var)
{
switch ($var) {
case 'message':
print $this->message . PHP_EOL;
break;
default:
$class_name = get_class($this);
print "Undefined property: $class_name:$var" . PHP_EOL;
}
}
function __set($var, $val)
{
switch ($var) {
case 'message':
$this->message = $val;
break;
default:
$class_name = get_class($this);
print "Undefined property: $class_name:$var" . PHP_EOL;
}
}
}
$hoge = new Hoge();
$hoge->message;
$hoge->message = 'bood by!';
$hoge->message;
$hoge->non_property;
$hoge->non_property = 'hoge';
#hello, world!
#bood by!
#Undefined property: Hoge:non_property
#Undefined property: Hoge:non_property