加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

为什么在OOPs PHP中不推荐直接访问属性?

发布时间:2020-12-13 18:07:12 所属栏目:PHP教程 来源:网络整理
导读:如果我有一个具有属性$name的类“person”及其getter(get_name())和setter(set_name())方法,那么在实例化对象并设置属性之后, $paddy = new person();$paddy-set_name("Padyster Dave");echo "Paddy's full name: ".$paddy-name; //WHY THIS IS NOT RECOMMEN
如果我有一个具有属性$name的类“person”及其getter(get_name())和setter(set_name())方法,那么在实例化对象并设置属性之后,
$paddy = new person();

$paddy->set_name("Padyster Dave");

echo "Paddy's full name: ".$paddy->name; //WHY THIS IS NOT RECOMMENDED...

在上面的代码$paddy->名称;为什么不推荐

EDIT

上面的代码是一个示例代码,没有指定任何访问者..它只是为了理解$paddy-> name概念

因为有一天你可能会摆脱$name成员,用(例如)$first_name,$last_name和fullname()方法替换它(不是那个是 good idea).当然,与 __get and __set一样,这并不重要.

更一般地说,设置属性可能不像存储值那么简单.直接访问成员字段可能导致其他函数导致对象处于不一致状态.想象一下,你存储了一个需要保持排序的数组;如果数组是公共的,那么其他东西可以为该字段分配一个未排序的数组.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读