- __construct
- __destruct
- __call
- __get
- __set
- __isset
- __unset
- __sleep
- __wakeup
- __toString
- __set_state
- __clone
- __autoload
プロパティに値を格納したり、
プロパティの値を参照したりした時点で、
マジックメソッドが必ず動き出すとはかぎらない。
- 三種類のアクセス権(private, protected, public)のプロパティを用意。
自動でプロパティを作成するものも一つ用意- そこに1という値を格納する。
- setterとgetterが起動するかどうかをみる。
<?php
class magicMethod
{
private $private;
protected $protect;
public $public;
public function __set( $key, $value )
{
echo "__set() start\n";
$this->$key = $value;
}
public function __get( $key )
{
echo "__get() start\n";
return $this->$key;
}
}
$magicMethodObj = new magicMethod();
echo "private value ---\n";
$magicMethodObj->private = 1;
echo $magicMethodObj->private;
echo "\n\n";
echo "protected value ---\n";
$magicMethodObj->protect = 1;
echo $magicMethodObj->protect;
echo "\n\n";
echo "public value ---\n";
$magicMethodObj->public = 1;
echo $magicMethodObj->public;
echo "\n\n";
echo "free value ---\n";
$magicMethodObj->free = 1;
echo $magicMethodObj->free;
?>
private value ---
__set() start
__get() start
1
protected value ---
__set() start
__get() start
1
public value ---
1
free value ---
__set() start
1
http://hain.jp/htsrv/trackback.php/93
極論istの技術屋を始めて早幾年。 流れの速い業界の波にもまれながらも精一杯生きている様をとくとごらんあれ。