PHP의 범위 파싱 연산자(::) 사용에 대한 분석 및 설명

黄舟
풀어 주다: 2023-03-12 11:32:01
원래의
1035명이 탐색했습니다.

오늘은 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!