PHP 类为啥使用 public 关键字?

Posted

技术标签:

【中文标题】PHP 类为啥使用 public 关键字?【英文标题】:PHP classes why use public keyword?PHP 类为什么使用 public 关键字? 【发布时间】:2011-06-08 08:04:25 【问题描述】:

如果类属性(变量)或方法(函数)默认是公共的,为什么我应该使用关键字public 来声明它们?或者,是吗?

换个说法,public 是多余的吗?我理解privateprotected,但是如果类成员仍然是公开的,为什么还要声明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 关键字?的主要内容,如果未能解决你的问题,请参考以下文章

php学习八:封装

PHP新手之学习类与对象

php新特性:trait 关键字使用

前端学PHP之面向对象系列第四篇-----关键字

PHP之interface

PHP类相关