私人和受保护之间的区别

Nea*_*eal -2 php oop private class protected

在PHP中,privateprotected方法之间似乎没有很大的差异.

问为什么我应该protected在PHP Chatroom中使用并得到这个答案:

除非你有充分的理由不这样做:是的,
而且很好的理由是,如果你的代码是闭源库
,即便如此,它也可以用反射覆盖

所以 -

如果private方法可能被Reflection重写,那么方法中的重点是什么private

cHa*_*Hao 9

private并且protected有助于编写做正确事情的代码.正如你所注意到的那样,它们并非牢不可破 - 如果你愿意,没有什么能阻止你绕过它们.这是因为它们旨在保护您免于意外地做错事,而不是积极地尝试.

可以用反射绕过它们,但这并不意味着你应该这样做.您可以考虑private并且protected有点像"保修无效,如果损坏"标签; 如果你忽略它们并直接用自己的东西捣乱,那么对象/类可能表现不正常. 它没有义务在那时,因为你已经把它自己弄得乱七八糟 - 而这样做的代码完全是罪魁祸首.

现在,至于标题中的问题......你用来protected专门为子类声明接口; 你基本上宣称你打算让他们直接使用那些东西,而private你却不这么说.他们是否无视这一点取决于他们,但如果他们这样做,那就搞砸了.你试图警告他们.