PHP面试题更新 2026-08-05

在PHP面向对象编程中,类成员可以使用的访问修饰符主要有哪些?请说明public、protected、private这三者在类内、子类和类外的可见性差异,并解释它们如何影响封装性。

技术原理PHP

考察说明

考查对PHP类访问修饰符的理解及封装性应用

回答思路

  1. 【回答框架 1】PHP类修饰符主要指访问控制修饰符,包括public、protected、private。public允许从任何地方访问,protected允许从类内部和子类访问,private仅允许在定义它的类内部访问。
  2. 【回答框架 2】区别在于可见性范围:public最开放,protected限制在继承层级内,private最严格。这直接体现封装原则,通过限制外部访问保护对象内部状态。
  3. 【回答框架 3】类常量(const)默认为public,类的属性和方法常用private或protected以隐藏实现细节,公开接口用public暴露。使用修饰符需结合类设计意图,避免过度暴露或过度限制。
  4. 【回答框架 4】此外,PHP还支持静态(static)和抽象(abstract)等非访问修饰符,但访问控制修饰符是常见考查点。
  5. 【关键点 1】public:外部可自由访问,适用于公开接口
  6. 【关键点 2】protected:子类可访问,实现继承中的共享
  7. 【关键点 3】private:仅类自身可见,保护内部实现
  8. 【关键点 4】三者组成访问等级从高到低:public>protected>private
  9. 【易错点 1】混淆protected和private,误以为外部可访问private
  10. 【易错点 2】忽略类常量默认public的特点
  11. 【易错点 3】在子类中试图访问父类private成员导致错误