默认是 public,因php为向后兼容保留旧语法,var声明等价于public;但不推荐省略,应显式声明public/protected/private,多数情况用private配合getter/setter。

不写修饰符时,默认是 public。
为什么默认是 public
PHP 为向后兼容保留了旧语法习惯。在 PHP 7.4 之前,很多代码直接用 var $name; 声明属性,而 var 实际等价于 public。所以当省略 public、protected、private 时,解析器会自动按 public 处理。
这种写法不推荐
虽然语法允许,但存在明显问题:
- 可读性差,别人无法一眼判断访问意图
- 违背封装原则,外部可随意读写,容易破坏对象状态
- 类型属性(typed property)必须显式声明可见性,否则报错 —— 比如
string $name;是非法的,必须写成public string $name;
实际开发中建议怎么做
明确写出访问控制符,根据用途选择:
- 需要外部直接读写的字段(极少见),用
public - 只允许本类和子类使用,用
protected - 绝大多数情况应设为
private,再通过 getter/setter 控制访问
这样既清晰又安全,也符合现代 PHP 的编码规范。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











