> 백엔드 개발 > PHP 튜토리얼 > PHP `self` 대 `$this`: 각각 언제 사용합니까?

PHP `self` 대 `$this`: 각각 언제 사용합니까?

Barbara Streisand
풀어 주다: 2024-12-24 01:17:10
원래의
179명이 탐색했습니다.

PHP `self` vs. `$this`: When to Use Each?

PHP에서 'Self'와 '$This'를 사용해야 하는 경우

PHP에서 'self'와 '$의 차이점 이해 이것이 결정적이다. 'Self'는 현재 클래스를 나타내고 '$this'는 현재 객체를 나타냅니다.

'Self'를 사용해야 하는 경우:

  • 정적 멤버 액세스(변수 또는 메서드):

    class MyClass {
        static $static_member = 10;
    }
    echo MyClass::$static_member; // Output: 10
    로그인 후 복사
  • 부모 클래스 메서드 호출:

    class ChildClass extends ParentClass {
        public function myMethod() {
            self::parentMethod(); // Calls the parent class method
        }
    }
    로그인 후 복사

'$This'를 사용하는 경우:

  • 액세스 중 비정적 멤버:

    class MyClass {
        private $instance_member = 20;
    }
    $obj = new MyClass();
    echo $obj->instance_member; // Output: 20
    로그인 후 복사
  • 인스턴스 메서드 호출:

    class MyClass {
        public function myMethod() {
            echo $this->instance_member; // Accesses the instance member
        }
    }
    로그인 후 복사
  • 다형성: 파생 클래스에서 인스턴스 메서드 호출:

    class BaseClass {
        public function myMethod() {
            echo 'BaseClass::myMethod()';
        }
    }
    class DerivedClass extends BaseClass {
        override public function myMethod() {
            echo 'DerivedClass::myMethod()';
        }
    }
    $baseObj = new BaseClass();
    $derivedObj = new DerivedClass();
    $baseObj->myMethod(); // Output: 'BaseClass::myMethod()'
    $derivedObj->myMethod(); // Output: 'DerivedClass::myMethod()'
    로그인 후 복사
  • 제압 다형성: 파생 클래스에서 'self'를 사용하여 상위 클래스 메서드 호출:

    class BaseClass {
        public function myMethod() {
            echo 'BaseClass::myMethod()';
        }
    }
    class DerivedClass extends BaseClass {
        override public function myMethod() {
            parent::myMethod(); // Calls the BaseClass's myMethod() using self::
        }
    }
    $derivedObj = new DerivedClass();
    $derivedObj->myMethod(); // Output: 'BaseClass::myMethod()'
    로그인 후 복사

위 내용은 PHP `self` 대 `$this`: 각각 언제 사용합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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