<?php
/**
1.在给不可访问属性赋值时,__set()会调用。
2.在读取不可访问属性的值时,__get()会被调用。
3.当对不可访问属性调用isset()或者empty()时,__set()会被调用。
4.当对不可访问属性调用unset()时,__unset()会被调用。
*/
class ProperTest
{
private $data = array();
public $declared =1;
private $hidden =2;
public function __set($name, $value)
{
echo "Setting'$name'to'$value'";
$this->data[$name] =$value;
}
public function __get($name)
{
echo "Getting '$name' <br>";
if(array_key_exists($name, $this->data))
{
return $this->data[$name];
}
}
public function __isset($name)
{
echo "Is '$name' set";
return isset($this->data[$name]);
}
public function __unset($name)
{
echo "Unsetting '$name' ";
unset($this->data[$name]);
}
}
$p = new ProperTest();
//在给不可访问的属性赋值时会调用__set()方法
$p->hidden = 3;
//在读取不可访问的属性是会调用__get()方法。
echo $p->hidden;
?>
php魔术方法
最新推荐文章于 2024-08-29 17:53:13 发布