PHP5受保护变量背后的推理

Vol*_*ike 5 php protected

你能解释为什么我想在PHP5中的某些类变量和方法上使用"protected"与"public"或"private"的原因是什么?我还没有找到一个案例,我认为我需要"受保护",并根据意图选择"公开"或"私人".即使在团队合作中,我仍然没有找到一个案例(基于我迄今为止的知识)为什么"受保护"对于类变量和方法是必要的.

The*_*ith 5

例如,Flourish库的fDate类提供了许多功能,但不是我需要的所有功能.所以我扩展了自己的课程.

我很快发现它的核心内部变量fDate :: $ date(自1970年以来的秒数)是私有财产.这使我无法在我的子类ThriveDate中访问它.一旦Flourish的维护者将其改为protected属性,我就能够使用它,从而充分扩展fDate.

因为你永远不知道谁可能需要扩展你的类,以及将来,除了有很多理由让属性永远不被子类修改之外,最好还是保护每个内部属性.

TL; DR:私有财产应该与公共财产一样罕见:例如几乎从不使用.

  • -1我不是一个贬低者,但受保护的变量可能和公众一样危险.你应该将你的变量设为私有,除非你有特殊的理由不这样做. (3认同)