2016 - 2024

感恩一路有你

PHP面向对象编程中的__set和__get方法

浏览量:3870 时间:2024-03-04 11:54:33 作者:采采

在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这两个魔术方法,我们可以更灵活地操作私有属性,提高代码的可读性和可维护性。在实际项目开发中,合理地运用这两个方法将会给我们带来很多便利。

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。