PHP 5에서 '$this' 대신 'self'를 사용해야 하는 경우
PHP 5에서 클래스를 참조하기 위해 올바른 키워드 사용 구성원과 방법이 중요합니다. 'self'와 '$this' 중 하나를 선택할 때 정적 멤버를 참조하는지 아니면 인스턴스 멤버를 참조하는지에 따라 결정이 달라집니다.
인스턴스 멤버에 '$this' 사용
'$this'는 객체의 현재 인스턴스를 나타냅니다. 각 인스턴스에 특정한 비정적 멤버에 액세스하는 데 사용됩니다. 예:
class MyClass { private $member = 1; function __construct() { echo $this->member; // Outputs 1 } }
정적 멤버에 'self' 사용
'self'는 인스턴스에 관계없이 현재 클래스를 나타냅니다. 클래스의 모든 인스턴스에서 공유되는 정적 멤버에 액세스하는 데 사용됩니다. 예:
class MyClass { private static $staticMember = 2; function __construct() { echo self::$staticMember; // Outputs 2 } }
다형성 및 멤버 함수
'$this'는 다형성을 활성화하여 파생 클래스가 상위 클래스의 멤버 함수를 재정의할 수 있도록 합니다. 예:
class BaseClass { function foo() { echo 'BaseClass::foo()'; } } class DerivedClass extends BaseClass { function foo() { echo 'DerivedClass::foo()'; } } $derivedObject = new DerivedClass(); $derivedObject->foo(); // Outputs 'DerivedClass::foo()'
'self'로 다형성 억제
멤버 함수에서 '$this' 대신 'self'를 사용하면 다형성 동작을 억제할 수 있습니다. . 함수는 객체의 실제 유형에 관계없이 항상 상위 클래스의 구현을 호출합니다. 예:
class BaseClass { function foo() { echo 'BaseClass::foo()'; } } class DerivedClass extends BaseClass { function foo() { echo 'DerivedClass::foo()'; } } $derivedObject = new DerivedClass(); $derivedObject->self::foo(); // Outputs 'BaseClass::foo()'
위 내용은 클래스 멤버에 액세스하기 위해 PHP 5에서 `self`와 `$this`를 언제 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!