что означает новый статический?

Я видел в некоторых рамках эту строку кода:

return new static($view, $data); 

как вы понимаете new static ?

Когда вы пишете new self() внутри функции-члена класса, вы получаете экземпляр этого класса. Это волшебство ключевого слова « self .

Так:

 class Foo { public static function baz() { return new self(); } } $x = Foo::baz(); // $x is now a `Foo` 

Вы получаете Foo даже если статический классификатор, который вы использовали, был для производного класса:

 class Bar extends Foo { } $z = Bar::baz(); // $z is now a `Foo` 

Если вы хотите включить полиморфизм (в некотором смысле), и PHP обратит внимание на используемый вами квалификатор, вы можете поменять ключевое слово self для ключевого слова static :

 class Foo { public static function baz() { return new static(); } } class Bar extends Foo { } $wow = Bar::baz(); // $wow is now a `Bar`, even though `baz()` is in base `Foo` 

Это стало возможным благодаря функции PHP, известной как поздняя статическая привязка ; не путайте его для других, более обычных применений ключевого слова static .