为什么一些开发人员创建一种返回新静态的方法?有一个返回 new static的方法的原因是什么?我不是在问静态和自我之间有什么区别,或者静态和自我是什么意思。例如,这是一个简单的类:
<?php
class Expression
{
public static function make()
{
return new static;
}
public function find($value)
{
return '/' . $value .'/';
}
public function then($value)
{
return $this->find($value);
}
public function hi($value)
{
return "hi";
}
}
如您所见,有一个静态方法make()返回new static。然后,一些开发人员调用其他方法,如下所示:
$regex = Expression::make()->find('www');
这样做的目的是什么?我看到这里我们不使用new Expression语法,如果这就是重点 - 那么为什么不将所有方法都设为静态呢?有什么区别,有一个返回新静态的方法(而其他方法不是静态的)的原因是什么?