>백엔드 개발 >PHP 튜토리얼 >PHP에서 정적과 자체의 차이점에 대한 자세한 설명

PHP에서 정적과 자체의 차이점에 대한 자세한 설명

黄舟
黄舟원래의
2017-08-10 11:19:561552검색

인터뷰 때 질문을 받았는데, 답변을 드릴 수밖에 없어서 여기에 요약하고 싶습니다.

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

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

정적 바인딩은 PHP 5.3.0입니다. 상속 범위에서 정적으로 호출되는 클래스를 참조하는 데 사용되는 추가된 함수입니다.

간단히 말하면

self는 어떤 클래스에 작성되는지, 이것이 실제로 호출되는 클래스입니다. .

static은 사용하는 클래스를 나타내며 이는 상위 클래스에 작성한 static이며 하위 클래스에 의해 재정의되고 하위 클래스의 메서드나 속성이 사용됩니다

<?phpclass Person{
    public static function name()
    {
        echo "111";        echo "<br />";
    }    public static function callself()
    {
        self::name();
    }    public static function callstatic()
    {
        static::name();
    }
}class Man extends Person{
    public static function name()
    {
        echo "222";        echo "<br />";
    }
}

Man::callself();  // output: 111Man::callstatic();  // output: 222?>

위 내용은 PHP에서 정적과 자체의 차이점에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.