写点什么

【web 开发基础】PHP 中的访问方法(60)

作者:迷彩
  • 2022-12-31
    广东
  • 本文字数:817 字

    阅读完需:约 3 分钟

前言

另一个很好用的函数是访问方法(accessor)。由于 OOP 思想并不鼓励直接从类的外部访问类的属性,以强调封装性,因此可以使用_get 和_set 方法来达到此目的,也就是说要使用访问函数。无论何时,类属性被访问和操作,访问方法都会被激发。通过使用它们可以避免直接对类属性的访问。下面通过实例介绍访问方法的使用方法和技巧。


访问方法的使用

废话不多说,先上代码感受一下它的强大:

<?phpclass Student{	public $property;		function __set($propName, $propValue){		$this->$propName = $propValue;	}		function __get($propName){		return $this->$propName;	}	}
//类实例化$zhangsan = new Student();$zhangsan->name= '张三';$zhangsan->gender = '男';
$lixiaohua = new Student();$lixiaohua->name= '李小华';$lixiaohua->gender = '女';$lixiaohua->age = 18;

echo $zhangsan->name . "的性别是:" . $zhangsan->gender ."\n";echo $lixiaohua->name ."今年" . $lixiaohua->age . "岁,性别是:" . $lixiaohua->gender ."\n";
?>
复制代码

执行结果如下:

  1. $zhangsan 为类 Student 的实例。直接添加属性 name 和 gender,并且赋值,如"$zhangsan->name = "张三"; $zhangsan->gender = "男";,此时,类 Student 中的_set 函数被调用。$lixiaohua 实例为同样的过程。另外,$lixiaohua 实例添加了一个对象属性 age。

  2. echo 命令中用到的对象属性,如 $zhangsan->name 等,则是调用了类 Student 中的_get 函数。

  3. 此例中,_set 方法的格式为:

<?phpfunction _set($propName,$propValue){
$this->$propName = $propValue;
}
复制代码

_get 方法的格式为:

<?phpfunction _get($propName){
return $this->$propName;
}
复制代码

其中,$propName 为“属性名”,$propValue 为“属性值”。这样就可以避免了很多冗长的 get 和 set 方法,可以更加灵活地设置和获取类的属性。 当类的属性比较多时,同时又需要使用大量 get()和 set()方法的时候,使用这种方式或许是个非常不错的选择。

发布于: 2022-12-31阅读数: 49
用户头像

迷彩

关注

我的工作是常年写bug|公众号:编程架构之美 2020-06-18 加入

修bug的菜鸟~公众号:“互联网有啥事”已改名为“编程架构之美”

评论

发布
暂无评论
【web 开发基础】PHP中的访问方法(60)_PHP基础_迷彩_InfoQ写作社区