为什么PHP允许从其他实例调用私有方法?

Ema*_*sev 5 php oop encapsulation

只要它们来自同一个类的实例,PHP就会调用私有方法.

这就是PHP文档解释它的方式:

即使它们不是相同的实例,相同类型的对象也可以访问彼此私有和受保护的成员.这是因为在这些对象内部时已经知道实现特定的细节.

这不会破坏封装吗?事实如何implementation specific details are known证明这一点?

ps还有其他(面向对象的)语言吗?

Dim*_*ima 1

对于大多数语言来说都是如此,java您也可以这样做,这是因为对象来自同一个实例,它“知道”相同实例具有的所有属性