{site_name}

{site_name}

🌜 搜索

在 PHP 中,__set() 是一个魔术方法(magic method),用于

php 𝄐 0
phpsetcookie,phpsettype
在 PHP 中,__set() 是一个魔术方法(magic method),用于在访问不存在的或不可访问的属性时进行设置操作。当试图给一个对象的属性赋值时,如果该属性不存在或者没有权限访问时,__set() 方法会被自动调用。

以下是使用 __set() 方法的详细解释和相应的示例:

php
class MyClass {
private $data = array();

public function __set($name, $value) {
$this->data[$name] = $value;
}

public function __get($name) {
return $this->data[$name];
}
}

$obj = new MyClass();
$obj->property = "Hello, World!";
echo $obj->property; // 输出: Hello, World!


在上面的示例中,MyClass 类定义了 __set() 方法来设置属性,并且还定义了 __get() 方法来获取属性的值。在 __set() 方法中,我们将属性名作为键,属性值作为值存储在类的私有数组 $data 中。这样,在给不存在的属性赋值时,__set() 方法会被触发并进行处理。

在示例中创建了一个 $obj 对象,并对其属性 property 赋值为 "Hello, World!"。然后,在输出时使用 $obj->property 访问该属性,实际上是通过 __get() 方法获取了属性的值,并将其输出。

值得注意的是,__set() 方法只会在尝试设置不存在的或不可访问的属性时被调用。如果属性已经存在且可访问,直接对属性赋值将不会触发 __set() 方法。