限时免费试用:欢迎注册 api.bigmodel.org ,快速体验大模型 API 接入服务。
当前位置:首页 >开发者 >PHP笔记 >PHP高级

OOP面向对象基础-封装性

分类:PHP高级时间:2018-01-02浏览:3177

面型对象的特性

  1. 封装性
  2. 继承性
  3. 多态性

3p

  • public 公共的
  • private 私有的
  • protected 受保护的

魔术方法(自动调用,自动触发)

__set($key,$value)

给非公有的属性赋值时,自动调用,并且把属性名称和要赋的值 作为第1个和第2个参数传入
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)

使用非公有的属性时自动调用,并且把属性名传入,
public function __get($key)
    {
      echo  $this ->$key;
    }

$bm->name;    

__isset()

当对非公有属性 调用isset/empty函数是自动调用
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函数是自动调用
本站文章如未注明出处均为原创,转载请注明出处,如有侵权请邮件联系站长。
0/500
Share your thoughts respectfully.