也许我的问题已经被问过好几次了,但是......
我有以下代码
abstract class ParentClass
{
protected static $count=0;
public static function inc()
{
static::$count++;
}
public static function getCount()
{
return static::$count;
}
}
class FirstChild extends ParentClass
{
}
class SecondChild extends ParentClass
{
}
我就像这样使用它
FirstChild::inc();
echo SecondChild::getCount();
它向我显示“1”。你可能猜到我需要“0”:)
我看到两种方法:
- 添加
protected static $count=0;
到每个派生类 $count
不是整数而是数组。inc
并在和getCount
方法中做一些这样的事情:静态::$count[get_call_class()]++;
和
return static::$count[get_called_class()];
但我认为这些方式有点丑陋。首先 - 让我复制/粘贴,我想避免。第二 - 好吧,我不知道:) 我只是不喜欢它。
有没有更好的方法来实现我想要的?
提前致谢。