当前位置: 首页 > 后端技术 > PHP

【短文】为什么PHP的私有变量不用下划线?

时间:2023-03-30 05:24:49 PHP

前言首先,这个问题没什么好争论的。类似这种关于代码规范的问题,我目前的观点是:followtheteamyoufaceyoufollowthecodeblockofyouface上次两次被别人问到关于在php中强调私有变量,因为我也是这样做的一开始是的,但下划线到最后还是没用。最后想想还是说说自己的想法。为什么我不在PHP的私有变量中使用下划线?首先:大家都知道面向对象编程中对修改关闭,对扩展开放的原则(所以属性不public,违反了原则)。但是我们的代码总是适得其反。在某些场景下,我们需要在外部修改我们的属性。在这里你会经常看到getXXX、setXXX等一些成员方法。但是:对于getXXX和setXXX,我比较习惯__get和__set这两个魔术方法。这两个魔法方法其实可以应用到这个场景中,因为它们可以将属性暴露给外界,并对其进行控制,防止被滥用。它们是符合面向对象思想的。但是:暴露一个带下划线的私有属性看起来很奇怪(既然私有的是外部访问的,为什么要加下划线)。//Likethis(newDemo)->_XXX所以:我将__get和__set这两个魔术方法统一下划线,这样就可以不用下划线访问这个私有属性了。classDemo{publicfunction__set($name='',$value=''){$argu="_{$this->$name}";返回$this->$argu=$value;}公共函数__get($name=''){$argu="_{$this->$name}";返回$this->$name;}}这样:可以对外暴露的私有属性不加下划线。但是:把这个加到魔术方法__get和__set中感觉很奇怪。结果:所以根本没有添加。其次:想了想,也没有这种硬性规定。最后如下:classDemo{publicfunction__set($name='',$value=''){return$this->$name=$value;}公共函数__get($value=''){return$this->$value;}}