ProgramingTip

새로운 정적이란 무엇입니까?

bestdevel 2020. 12. 8. 19:19
반응형

새로운 정적이란 무엇입니까?


이 질문에 이미 답변이 있습니다.

일부 프레임 워크 에서이 코드 줄을 보았습니다.

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.

참고 URL : https://stackoverflow.com/questions/15898843/what-means-new-static

반응형