범위 확인 연산자(Paamayim Nekudotayim이라고도 함) 또는 간단히 콜론 쌍을 사용하여 정적 멤버, 메서드 및 상수에 액세스할 수 있으며 재정의된 클래스의 멤버 및 메서드에 액세스하는 데에도 사용할 수 있습니다.
클래스 외부에서 이러한 정적 멤버, 메서드 및 상수에 액세스할 때는 클래스 이름을 사용해야 합니다.
Paamayim Nekudotayim은 히브리어로 이중 콜론을 의미합니다.
클래스 외부에서 :: 연산자 사용
class MyClass {
const CONST_VALUE = '상수 값'
}
echo MyClass::CONST_VALUE
self와 parent this 2개 키워드는 클래스 내의 멤버나 메서드에 액세스하는 데 사용됩니다.
예:
class OtherClass는 MyClass를 확장합니다.
{
public static $my_static = 'static var';
public static function doubleColon() {
echo parent::CONST_VALUE . ";
echo self::$my_static . " n";
}
}
OtherClass::doubleColon();
하위 클래스가 상위 클래스의 메서드를 재정의하면 PHP는 상위 클래스에서 재정의된 메서드는 하위 클래스에서 호출될 때까지 더 이상 실행되지 않습니다. (말도 안되는 소리인가요? 아니요, 이는 PHP와 다른 주류 언어 사이의 약간의 차이입니다.) 이 메커니즘은 생성자, 소멸자, 오버로드 및 매직 함수에도 적용됩니다.
class MyClass
{
protected function myFunc() {
echo "MyClass::myFunc() n";
}
}
class OtherClass는 MyClass를 확장합니다
{
// 상위 클래스의 메서드를 재정의합니다.
public function myFunc()
{
// 하지만 여전히 재정의된 메서드를 호출할 수 있습니다.
parent::myFunc(); > echo "OtherClass::myFunc() n";
}
}
$class = new OtherClass()
$class->myFunc(); ------------------------------------- -------------
??중요??정적 메서드나 멤버에 액세스할 때는 클래스 이름:: 메서드를 사용해야 합니다. .
또 다른 참고 사항: PHP는 생성자와 소멸자를 포함하여 상위 클래스의 메서드를 적극적으로 호출하지 않습니다.
이 텍스트 보기: http://163xiaofan.blog.163.com/blog/static/1713578020061027101820973
위 내용은 기본적인 회계연습과 사례답변을 소개하고 있으며, PHP 기본지식: 클래스와 객체 4 범위분석 연산자::를 포함하여 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되길 바랍니다.