Gho*_*der 1 php inheritance class parent self
请参阅以下示例(取自上一个问题):
class ClassA {
public static function test(){ self::getVar(); }
public static function getVar(){ echo 'A'; }
}
class ClassB extends ClassA {
public static function getVar(){ echo 'B'; }
}
ClassA::test(); // prints 'A'
ClassB::test(); // also prints 'A'
Run Code Online (Sandbox Code Playgroud)
有没有一种方法,这样当B调用test(),self将调用B的getVar()函数?
您所谈论的内容称为Late Static Binding,它自PHP 5.3开始提供.您需要做的就是使用单词static而不是self:
class ClassA {
public static function test() { return static::getVar(); }
}
class ClassB extends ClassA {
public static function getVar() { return 'B'; }
}
echo ClassB::test(); // prints 'B'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
58 次 |
| 最近记录: |