当任何静态函数被调用一次时,我如何自动调用函数。
class A{
private static $val;
public static function X(){
return static::$val;
}
}
class B extend A
{
}
如果我调用B::X();
,那么函数可以设置父类的$val
的值。这必须在不创建class B
实例的情况下完成。
我想自动做到这一点。类似construct的功能。在调用任何静态方法之前,我想自动调用一个函数
如果我调用B::X(),有可能吗;则函数可以设置父类的$val。这必须在不创建实例的情况下完成B类
试试这个:
class A {
protected static $val;
public static function X(){
return static::$val;
}
}
class B extends A
{
public static function X(){
static::$val = 123;
return parent::X();
}
}
echo B::X();
你必须
- 将
private static $val;
替换为protected static $val;
以使属性在类B
中可见 - 你必须使用
extends
而不是extend
- 您可以使用
parent::
来调用父类的方法(在您的情况下是类A
)