📅  最后修改于: 2023-12-03 15:03:44.575000             🧑  作者: Mango
在PHP编程中,经常会使用静态方法和静态属性,这些成员要使用self或static关键字,而在self和static之间存在一些差异。本文将介绍PHP中self::$bar和static::$bar的区别。
self是一个指向类自身的指针,它可以用于访问当前类的静态属性或方法。self::$bar用于访问当前类的静态属性$bar。
下面是一个示例代码:
class MyClass {
public static $bar = 'hello';
public static function printBar() {
echo self::$bar;
}
}
MyClass::printBar(); //输出 hello
static是一个指向当前运行时类的指针。它可以在父类和子类中访问静态属性或方法。static::$bar用于访问当前类或其子类的静态属性$bar。
下面是一个示例代码:
class MyParentClass {
public static $bar = 'parent';
}
class MyClass extends MyParentClass {
public static function printBar() {
echo static::$bar;
}
}
class MyChildClass extends MyClass {
public static $bar = 'child';
}
MyClass::printBar(); //输出 parent
MyChildClass::printBar(); //输出 child
启示:self指向的是当前类,而static指向的是当前运行时类,可能是当前类或其子类。在使用静态方法和属性时,需要考虑到这一点。
以上就是PHP中self::$bar和static::$bar的区别,除此之外,还有许多有趣的PHP问题等待着你去探索。