我有这个类,可以简单地转换一些文本数据:
regexTextReplace
class regexTextReplace extends Rule
{
public function apply(array $table): array
{
return $this->applyRule(get_class($this), $content);
}
public function rule($content)
{
return preg_replace($this->pattern, $this->replacement, $content);
}
}
现在,这只是许多规则类之一。我所有的规则类都扩展了Rule
,如下所示:
class Rule
{
public function applyRule(string $rule, array $content): array
{
return = array_map("{$rule}::rule", $rows);
}
}
现在,applyRule
类中的Rule
方法正被许多其他解析规则类扩展。这是因为所有这些类都使用applyRule()
方法,并且此方法的代码始终相同。
上面的代码给我这个错误:
regexTextReplace::rule() should not be called statically
有没有办法,我可以从扩展的rule()
类的解析规则类(regexTextReplace
)中引用Rule
方法?