46

一部の開発者がnew staticを返す 1 つのメソッドを作成するのはなぜですか? new staticを返すメソッドを持つ理由は何ですか? static と self の違いや、 static と self の意味を尋ねているわけではありません。たとえば、1 つの単純なクラスを次に示します。

<?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";
    }

}

ご覧のとおり、new staticを返すstaticメソッドmake()があります。次に、一部の開発者は次のように他のメソッドを呼び出します。

$regex = Expression::make()->find('www');

これの目的は何ですか?ここでは、新しい Expression構文を使用していないことがわかりました。それがポイントである場合は、すべてのメソッドを静的にしないのはなぜですか? 違いは何ですか、新しい静的を返す 1 つのメソッドを使用する理由は何ですか(他のメソッドは静的ではありません)。

4

2 に答える 2