温馨提示×

php __set适用哪些对象

PHP
小樊
81
2024-11-29 21:01:01
栏目: 编程语言

__set() 是 PHP 中的一个魔术方法(magic method),用于在对象中动态设置属性值。它适用于以下对象:

  1. 实例化对象:当你创建一个类的实例并尝试访问或设置其不存在的属性时,__set() 方法会被调用。
class MyClass {
    public function __set($name, $value) {
        echo "Setting property '$name' to '$value'\n";
    }
}

$obj = new MyClass();
$obj->newProperty = "Hello, World!"; // 调用 __set() 方法
  1. 子类对象:当你创建一个子类并尝试访问或设置其父类中不存在的属性时,__set() 方法会被调用。
class ParentClass {
    public function __set($name, $value) {
        echo "Setting property '$name' to '$value'\n";
    }
}

class ChildClass extends ParentClass {
}

$obj = new ChildClass();
$obj->newProperty = "Hello, World!"; // 调用父类的 __set() 方法

需要注意的是,__set() 方法只适用于对象的属性,而不适用于静态属性。要设置静态属性,你需要使用静态方法 __set_state()

0