오늘은 PHP와 관련된 여러 기호를 봤습니다. 하나는 @인데, PHP 인터프리터가 오류를 보고하지 못하도록 변수 앞에 추가하는데, 이는 오류가 발생하더라도 표시되지 않는다는 의미입니다.
오늘 PHP와 관련된 여러 기호를 봤습니다. 하나는 @인데, PHP 인터프리터가 오류를 보고하지 못하도록 변수 앞에 추가하는데, 이는 오류가 발생하더라도 표시되지 않는다는 의미입니다.
또한 더 중요한 기호인 PHP의 범위 결정 operator(::)이 있습니다.
인스턴스를 선언하지 않고 클래스의 functions 또는 기본 클래스의 함수 및 변수에 액세스하는 것이 유용합니다. 이 경우 :: operator가 사용됩니다.
<?php class A { function example() { echo "I am the original function A::example().<br />\n"; } } class B extends A { function example() { echo "I am the redefined function B::example().<br />\n"; A::example(); } } // A 类没有 对象 ,这将输出 // I am the original function A::example().<br /> A::example(); // 建立一个 B 类的对象 $b = new B; // 这将输出 // I am the redefined function B::example().<br /> // I am the original function A::example().<br /> $b->example(); ?>
위 예제에서는 클래스 A의 example() 함수를 호출하지만 여기에는 클래스 A의 객체가 없으므로 $a->example() 또는 유사한 메서드를 사용하여 example()을 호출할 수 없습니다. 대신에 우리는 example()을 클래스 함수, 즉 이 클래스의 객체가 아닌 클래스 자체의 함수로 호출합니다.
여기에는 클래스 함수가 있지만 클래스 변수는 없습니다. 실제로 함수가 호출될 때 개체가 전혀 없습니다. 따라서 클래스 함수는 어떤 객체도 사용할 수 없으며(그러나 로컬 또는 전역 변수는 사용할 수 있음) $this 변수를 전혀 사용할 수 없습니다.
위의 예에서 클래스 B는 example() 함수를 재정의합니다. 클래스 A에 원래 정의된 example() 함수는 마스크되어 클래스 A의 example() 함수에 액세스하기 위해 :: 연산자를 사용하지 않는 한 더 이상 적용되지 않습니다. 예: A::example() (실제로는 다음 장에서 소개할 parent::example()로 작성해야 합니다).
그렇기 때문에 현재 개체에 개체 변수가 있을 수 있습니다. 따라서 객체 함수 내에서 $this 및 객체 변수를 사용할 수 있습니다.
위 내용은 PHP의 범위 파싱 연산자(::) 사용에 대한 분석 및 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!