阅读量:3
在 PHP 中,__set() 是一个魔术方法,用于在对象上设置属性值。但是,它不能直接访问私有(private)属性,因为这些属性只能在类的内部访问。要在类外部通过 __set() 方法操作私有属性,您需要在类中定义一个公共(public)的 getter 和 setter 方法。
以下是一个示例:
class MyClass {
private $myPrivateProperty;
public function __get($name) {
if ($name === 'myPrivateProperty') {
return $this->myPrivateProperty;
}
return null;
}
public function __set($name, $value) {
if ($name === 'myPrivateProperty') {
$this->myPrivateProperty = $value;
} else {
// 对于其他属性,您可以在这里执行其他操作
echo "Unknown property: " . $name;
}
}
}
$obj = new MyClass();
$obj->myPrivateProperty = "Hello, World!";
echo $obj->myPrivateProperty; // 输出 "Hello, World!"
在这个例子中,我们定义了一个名为 MyClass 的类,其中包含一个私有属性 $myPrivateProperty。我们还定义了 __get() 和 __set() 方法,以便在类外部访问和修改这个私有属性。当我们尝试访问或修改 $obj 的 myPrivateProperty 属性时,__get() 和 __set() 方法会被调用。
以上就是关于“php __set对私有属性如何操作”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm