在 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() 方法。
在 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() 方法。
本文地址:
/show-279124.html
版权声明:除非特别标注原创,其它均来自互联网,转载时请以链接形式注明文章出处。