PHP Getters / Setters使用或不使用
我正在通过观看大量的视频教程和阅读过程中的大量文章来学习
PHP面向对象的编程.我看到的许多
PHP OOP教程都说使用getter和setter.这对我没有意义;为什么我会将类属性设置为私有或受保护,然后使用函数公开公开该属性?我开始研究并在这里找到文章,现在请求这个问题:
你应该在PHP中使用getter和setter而不是直接访问类的属性吗? 如果是,为什么? (非技术术语,请.其他一些问题给出了理由,但它们技术性很强,我无法理解他们试图解释的内容) 如果不是,为什么不呢? 注意:在阅读一些类似的Stack Overflow问题时,我注意到this post由Google开发人员编写.
谷歌提供了proof关于使用它们对您的代码的速度影响. 解决方法
正如我的近名同名所说,吸气剂和二传手的主要目的是副作用.你总是使用getter和setter的原因是代码可维护性.
假设您有一个10000行代码项目,并且您已经分配到$foo->条遍布全部.然后突然你决定每次foo的栏改变时都要记录.通过直接访问,您需要浏览整个代码库并查找所有分配.如果你有一个setter,那就是添加一行代码:在分配的地方没有任何变化. 或者,假设您有一个在构造函数中计算的age属性.一段时间后,你认为它不够好;你想在每次需要时计算它.这需要一个功能,直接访问不会削减它.如果从直接访问开始,则需要将其中的每个实例更改为函数调用.如果你从一个简单的getter开始,你可以通过修改getter将return $this-> age更改为日期计算或数据库调用或任何你想要的东西:没有其他更改. Ruby使这成为一个普遍的教条:没有公共属性,只有getter / setter(在Ruby世界中称为访问器),正是因为允许对象的唯一交互是消息传递(除非你使用魔法). Ruby也会创建琐碎的getter / setter ……错误,琐碎,这使得它对开发时间的影响可以忽略不计.在PHP中,您可以选择. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |