반응형
새로운 정적이란 무엇입니까?
이 질문에 이미 답변이 있습니다.
- 새로운 자기 대 새로운 정적 3 답변
일부 프레임 워크 에서이 코드 줄을 보았습니다.
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
반응형
'ProgramingTip' 카테고리의 다른 글
ImageMagick을 실행하여 다중 페이지 PDF의 첫 페이지 만 JPEG로 변환하는 방법은 무엇입니까? (0) | 2020.12.08 |
---|---|
Express에서 robots.txt를 처리하는 가장 현명한 방법은 무엇입니까? (0) | 2020.12.08 |
Ansible을 사용하여 원격 명령의 출력 표시 (0) | 2020.12.08 |
Interface Builder에서 Yosemite 스타일의 통합 도구 모음을 어떻게 만들 수 있습니까? (0) | 2020.12.08 |
str과 int 응집을 어떻게합니까? (0) | 2020.12.08 |