PHP 类为啥使用 public 关键字?
Posted
技术标签:
【中文标题】PHP 类为啥使用 public 关键字?【英文标题】:PHP classes why use public keyword?PHP 类为什么使用 public 关键字? 【发布时间】:2011-06-08 08:04:25 【问题描述】:如果类属性(变量)或方法(函数)默认是公共的,为什么我应该使用关键字public
来声明它们?或者,是吗?
换个说法,public
是多余的吗?我理解private
和protected
,但是如果类成员仍然是公开的,为什么还要声明public
?
【问题讨论】:
【参考方案1】:是的,public
是默认设置(请参阅visibility docs)。
人们添加它,因此它与所有其他方法/属性一致。
此外,如果您想声明一个公共属性并且不想使用public
,您将需要使用var
,这是不推荐的,并且可能会在某个时候被弃用。
【讨论】:
对于属性,好的。但如今谁真正需要公共财产?对于公共方法,这是一个约定问题(例如 PSR-2),这有利于熟悉性和互操作性。但是没有技术上的好处。而且,我认为,如果你的大脑还没有习惯看到 public 关键字,它不会提高可读性。【参考方案2】:使用public
没有技术原因,但是 PSR-2 要求所有功能都需要可见性关键字,因此如果您想遵循 PSR-2,那么您应该使用它:
4.3。方法
必须在所有方法上声明可见性。
https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md#43-methods
【讨论】:
【参考方案3】:从 php 5.3 开始(我想,已经有一段时间了),使用 var 关键字会引发 E_STRICT 错误,因此必须使用 public 来声明对象变量。至于功能,我认为更多的是一致性。
【讨论】:
不,它在 5.0 和 5.13 之间提高了 E_STRICT(根据文档)。但他们放弃了通知。 哦,真的吗?感谢您的提醒。我从来没有意识到它被改回来了【参考方案4】:当然这是多余的,因为这是默认的可见性级别。你应该尽可能避免它们。有些人显式添加了public
关键字,以便代码更具可读性。
【讨论】:
@Steve:我的意思是你可以忽略为公共级别变量输入public
关键字:)
@Everyone - 好的。我在想公众成员,这没有意义。 :P以上是关于PHP 类为啥使用 public 关键字?的主要内容,如果未能解决你的问题,请参考以下文章