php – 私有变量的优点/缺点?
我习惯于将我的所有类变量设为私有,并创建获取/设置它们的“包装器”函数:
class Something{ private $var; function getVar(){ $return $this->var; } } $smth = new Something(); echo $smth->getVar(); 我看到很多人这样做,所以我最终做了同样的事情:) 以这种方式使用它们是否有任何优势: class Something{ public $var; } $smth = new Something(); echp $smth->var; ? 我知道私有意味着你不能直接在课外访问它们,但对我来说,如果变量可以从任何地方访问那么它似乎并不重要…… 那么私有变量是否还有其他隐藏的优势?
如果您想将私有变量与公共getter和setter一起使用,或者您只是想将变量直接声明为public,则会因情况而异.
使用“getter”和“setter”可能是好的原因是,如果你想控制某人访问数据的时间. 举个例子,假设你得到了这个: public setBirthday($date) 然后,您可以确保传递给该setter的日期是有效的生日. 但是,如果您只是将变量声明为公共,则不能 public $birthday; 根据评论.
这意味着如果内部存储机制从1970年1月1日起变为秒数,那么您不必更改“外部API”.原因是你完全控制它: public getBirthday() { // you can still return a string formatted date,even though your // private variable contains number of seconds from 1/1/1970 } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |