💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
### __set() 为不可方法的属性赋值: __set() 一旦定义了__set()魔术方法,为不可访问的属性赋值的时候,就会自动的执行该方法,此时,处理权就交给用户自己了! 该魔术方法需要两个参数: 一个是该不可访问的属性的属性名 一个是该不可访问的属性的值 ### 默认行为 ~~~ class Person{ public $name; public $age; } $p = new Person(); $p->age = 20; $p->name = "jack"; $p->height = 190; ~~~ ~~~ object(Person)#1 (2) { ["name"]=> string(4) "jack" ["age"]=> int(20) } //为一个对象不存在的属性赋值相当于无效 ~~~ ### 对__set进行重写 ~~~ class Person{ public $name; public $age; public function __set($name, $value) { $this->$name =$value; } } $p = new Person(); $p->age = 20; $p->name = "jack"; $p->height = 190; var_dump($p); ~~~ ~~~ object(Person)#1 (3) { ["name"]=> string(4) "jack" ["age"]=> int(20) ["height"]=> int(190) } //赋值成功 ~~~