PHP面向对象编程中的__set和__get方法
在PHP面向对象编程中,我们经常会遇到需要访问protected和private修饰的属性的情况。为了方便操作这些属性,PHP提供了两个特殊的魔术方法__set和__get。通过这两个魔术方法,我们可以实现对私有属性的赋值和获取。接下来我们将介绍如何编写代码来使用这两个魔术方法。
编写包含私有属性的类
首先,我们需要编写一个包含私有属性的类。以下是一个示例代码:
```php
class A {
private $n1;
private $n2;
}
```
在上面的代码中,我们定义了一个名为A的类,并声明了两个private属性$n1和$n2。
使用__set()和__get()方法
接下来,我们需要在类中实现__set()和__get()方法来成对使用,以实现对私有属性的赋值和获取。下面是相应的代码片段:
```php
public function __set($pro_name, $pro_val){
$this->$pro_name $pro_val;
}
public function __get($pro_val){
if(isset($pro_val)){
return $this->$pro_name;
} else {
return null;
}
}
```
在上面的代码中,__set()方法用于设置私有属性的值,而__get()方法用于获取私有属性的值。在__get()方法中,我们还进行了对属性是否存在的判断。
创建对象并访问私有属性
现在,我们可以创建一个对象并尝试访问私有属性。例如,我们可以创建一个对象$aq,并尝试访问它的$n1属性。以下是相应的代码:
```php
$aq new A();
$aq->n1 39;
echo $a1->n1;
```
通过上面的代码,我们成功地对私有属性$n1进行了赋值并获取,并且可以正常地输出$n1的值。
通过使用__set和__get这两个魔术方法,我们可以更灵活地操作私有属性,提高代码的可读性和可维护性。在实际项目开发中,合理地运用这两个方法将会给我们带来很多便利。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。