php - 为什么公私保护如此重要?

标签 php oop class

人们一直告诉我,我应该在我所有的类属性和方法前使用 public、private 或 protected 访问修饰符。我真的不明白为什么。我是新手,所以请多多包涵,但我的看法是这样的:

  • 我是唯一一个会处理我的代码的人。不是一个团队。

  • 我已经知道一切意味着什么,再加上使用告诉我所有声明的变量和属性的编辑器,我知道我不会踩到我使用的变量。

我得到的一个解释是,它“保护或隐藏”了您的代码,不让可以看到它的人看到.....但是在 PHP 中,据我所知,用户无法首先看到您的代码地方,我瞒着谁呢?如果他们能看到我的代码,那么他们要么是黑客,要么在我的帐户中,所以无论如何我都无法阻止他们。

如果我在团队中处理大量代码,我可以理解,但对于小事情似乎没有必要。

最佳答案

你不是在向任何人“隐藏”你的代码,那是胡说八道。

protectedprivate 属性的作用是告诉 PHP 您打算如何使用它们。当您创建一个类时,您通常应该知道您希望如何使用该类。您将拥有其他代码可以与之交互的 public 部分,以及您不希望其他代码直接访问的其他部分。通常,您希望将一个类的 public 部分限制为一小部分定义良好且不会更改的方法。因为一旦您在代码的其他部分使用它们,更改它们就会变得很痛苦。所有的 privateprotected 内容只能在类本身内访问,因此以后更改它就不成问题了。

如果您是唯一一个处理代码的人,您可能会说这就像不使用“私有(private)部分”一样简单。但是你会犯错误,随着时间的推移你会忘记哪个部分属于哪里。将这些属性显式标记为 protectedprivate 让 PHP 帮助您不违反您自己的“使用条款”。这是 “不要碰这个” 和实际锁定某物之间的区别。

关于php - 为什么公私保护如此重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10908645/

相关文章:

php - 具有 SerializesModels 特征的 Laravel 队列作业检索过时的模型数据

php - 显示偶数和奇数 SQL 结果 (PHP)

android - 数据库驱动应用程序中的 OOP 建模对象?

java - 在Java中,有没有一种方法可以从该类创建/使用的对象内部访问该对象?

java - 为 Shoe 类创建 UML 图

php - 反向 htmlspecialchars

php - 找不到 Sublime Text 3 Sublimelinter phplint 和 php?

oop - 汽车和油漆类别关系

oop - 允许在非抽象类中声明抽象方法的目的是什么?

ios - 无法更改 swift 类循环加载器的属性