如何在父类中获得子类的静态属性的值?

  • 本文关键字:静态 属性 子类 父类 php oop
  • 更新时间 :
  • 英文 :


我有几个模型具有这种结构:

class Test extends yiidbActiveRecord
{
public static string $defaultDateRange = 'month'; // This property is the same in all classes
public static array $fields = ['name', 'price']; // This property is unique for each class
// This function is the same in all classes
public static function batchUpdate(array $preparedData): int
{
// A class variable is used here - self::$fields
}
// This function is different in all classes
public static function prepareData(array $data): array
{
// ...
}
}

模型既有共同的属性和函数,也有自己独特的属性和函数。我想优化代码以删除重复的代码段,但我不知道如何做到这一点。

我尝试创建一个基类并定义其中所有重复的属性和方法。但是我无法获得子元素的属性值Test::$fields无论如何。

class BaseMarketplaceMetric extends yiidbActiveRecord
{
public static string $defaultDateRange = 'month';
public static function batchUpdate(array $preparedData): int
{
// Need access to a property of a child class - Test::$fields
}
}

class Test extends BaseMarketplaceMetric
{
public static array $fields = ['name', 'price'];
public static function prepareData(array $data): array
{
// ...
}
}

如何获得父类中子类的静态属性的值?或者这一切都需要以完全不同的方式来完成?

解决方案:

我只是在父类中使用static::$fields来获取子类的静态属性。

相关内容

  • 没有找到相关文章