限时免费试用:欢迎注册 api.bigmodel.org ,快速体验大模型 API 接入服务。

PHP高级

OOP面向对象基础-封装性

面型对象的特性 封装性 继承性 多态性 3p public 公共的 private 私有的 protected 受保护的 魔术方法(自动调用,自动触发) __set($key,$value) 给非公有的属性赋值时,自动调用,并且把属性名称和要赋的值 作为第1个和第2个参数传入 class Car { private $name; public functio

作者
王明昌
发布时间

面型对象的特性

  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
友善分享您的看法。
反馈邮箱