> 백엔드 개발 > PHP 튜토리얼 > PHP에서 새로운 정적과 새로운 자아의 차이점

PHP에서 새로운 정적과 새로운 자아의 차이점

WBOY
풀어 주다: 2016-08-08 09:19:53
원래의
884명이 탐색했습니다.

오늘 사장님께서 회사에서 진행하는 10가지 프로그램 중에 새로운 정적인 것과 새로운 자아의 차이점에 대해 물으셨는데요. 그 중 단 한 가지도 답변을 해주신 적이 없습니다. 나중에 보충하겠습니다. . .

집에 돌아온 후 Baidu에 가서 둘의 차이점을 알아봤습니다.

self:: 또는 사용 __CLASS__ 현재 클래스에 대한 정적 참조는 현재 메서드가 정의된 클래스에 따라 다릅니다.

static::

을 사용하는 는 더 이상 현재 메서드가 정의된 클래스로 구문 분석되지 않습니다. 메소드가 정의되어 있지만 실제로는 시간에 따라 계산되어 실행됩니다. 정적 메서드 호출에 사용할 수 있으므로(그러나 이에 국한되지는 않음) "정적 바인딩"이라고도 합니다.

간단히 말하면 self는 어느 클래스에 작성되어 있는지를 의미하며, 이 클래스를 실제로 호출하는 것은 소위 후기 정적 바인딩, static은 사용되는 클래스, 즉 여러분이 속한 클래스를 나타냅니다. 상위 클래스에서 사용 정적

을 작성한 다음 이 정적을 하위 클래스를 통해 직접/간접적으로 사용합니다. 이 정적은 이 하위 클래스를 참조하므로 static은 $this와 매우 유사하지만 static은 가능합니다. 정적 메소드 및 속성 등에 사용됩니다.

예제를 참조하세요

<?<span>php
</span><span>class</span><span> Person
{
    </span><span>public</span><span>static</span><span>function</span><span> name()
    {
        </span><span>echo</span> "xiaosan"<span>;
    }
    </span><span>public</span><span>static</span><span>function</span><span> callself()
    {
        self</span>::<span>name();
    }

    </span><span>public</span><span>static</span><span>function</span><span> callstatic()
    {
        </span><span>static</span>::<span>name();
    }
}

</span><span>class</span> Man <span>extends</span><span> Person
{
    </span><span>public</span><span>static</span><span>function</span><span> name()
    {
        </span><span>echo</span> "gaojin"<span>;
    }
}
Man</span>::name();  <span>//</span><span> output: gaojin</span>Person::callself();  <span>//</span><span> output: xiaosan</span>Person::callstatic();  <span>//</span><span> output:gaojin</span>?>
로그인 후 복사

편집자는 계속 공부한다

위 내용은 관련 내용을 포함하여 PHP의 새로운 정적과 새로운 자아의 차이점을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿