在PHP中,非静态属性通过$this->属性名访问,如public function getName() { return $this->name; };2. 静态属性使用self::或static::访问,如self::$count++;3. 访问受private、protected、public限制,private仅类内可访,protected类及子类可访,public无限制;4. 子类无法通过$this访问父类private属性;5. 正确选择$this->或self::并遵循访问控制即可安全操作属性。

在PHP中,类的方法访问类属性需要使用正确的语法和作用域关键字。直接通过$this来引用当前对象的属性是标准做法,尤其适用于非静态属性。
使用 $this 访问实例属性
在类的普通方法中,访问类的实例属性必须通过$this->属性名的方式。
class User {
private $name = 'John';
public function getName() {
return $this->name; // 正确:使用 $this 访问私有属性
}
}
这里的$this代表当前对象实例,->用于访问其属性或方法。private、protected或public修饰的属性都可以通过这种方式在方法内部读取或修改。
访问静态属性使用 self:: 或 static::
如果属性被定义为静态(static),则不能使用$this,而应使用self::或static::。
立即学习“PHP免费学习笔记(深入)”;
示例:
class Counter {
public static $count = 0;
public function increment() {
self::$count++; // 正确:使用 self:: 操作静态属性
}
public static function getCount() {
return self::$count;
}
}
self::指向当前类,适合访问本类中的静态成员;static::支持后期静态绑定,更适合在继承场景中使用。
注意访问控制权限
属性的访问还受其可见性限制:
- private 属性只能在定义它的类内部访问
- protected 可在类及其子类中访问
- public 可在任何地方访问
即使在方法中,也不能绕过这些限制。例如,子类无法直接通过$this访问父类的private属性。
基本上就这些。只要根据属性是否静态选择$this->或self::,并遵守访问修饰符规则,就能正确访问类属性。











