如果你对该文章中的内容有疑问/不解,可以点击此处链接提问
要注明问题和此文章链接地址 点击此处跳转
面型对象的特性
- 封装性
- 继承性
- 多态性
3p
- public 公共的
- private 私有的
- protected 受保护的
魔术方法(自动调用,自动触发)
__set($key,$value)
给非公有的属性赋值时,自动调用,并且把属性名称和要赋的值 作为第1个和第2个参数传入
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
class Car { private $name; public function show(){ echo "this is a ".$this->name; } public function __set($key,$value){ $this->$key = $value; } } $bm = new Car; $bm -> name ="宝马";//如果不定义__set方法,会报错 $bm -> show(); |
__get($key)
使用非公有的属性时自动调用,并且把属性名传入,
1 2 3 4 5 6 7 |
public function __get($key) { echo $this ->$key; } $bm->name; |
__isset()
当对非公有属性 调用isset/empty函数是自动调用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
public function __isset($key) { echo $this->$key; echo "存在"; } public function __unset($key) { echo $this->$key; echo "我是删除"; } //外部不存在,内部存在 if(isset($a -> b)){ echo "存在"; }else{ echo "不存在"; } |
__unset()
当对非公有属性 调用unset函数是自动调用