오늘은 PHP와 관련된 여러 기호를 보았습니다. 하나는 @인데, PHP 인터프리터가 오류를 보고하지 못하도록 변수 앞에 추가하는데, 이는 오류가 발생하더라도 표시되지 않는다는 의미입니다.
더 중요한 기호인 PHP의 범위 결정 연산자(::)도 있습니다.
인스턴스를 선언하지 않고 클래스의 함수나 기본 클래스의 함수 및 변수에 액세스하는 것이 유용합니다. 그리고 이 경우에는 :: 연산자가 사용됩니다.
코드 복사 코드는 다음과 같습니다.
클래스 A {
함수 예시 () {
echo "나는 원래 함수 A::example().
n"
}
}
클래스 B 확장 A {
함수 예제 () {
echo "나는 재정의된 함수 B::example().
n"
A::example()
}
}
// A 클래스에 개체가 없습니다.
// 나는 원래 함수 A::example()입니다.
A::example()
// 클래스 B 객체 생성
$b = new B;// 이는
을 출력합니다// 나는 재정의된 함수 B::example()입니다.
나는 원래 함수 A::example()입니다.
$b->example()
?> 클래스 A example()의 함수이지만 여기에는 클래스 A의 객체가 없으므로 $a->example() 또는 유사한 메서드를 사용하여 example()을 호출할 수 없습니다. 대신에 우리는 example()을 클래스 함수, 즉 이 클래스의 객체가 아닌 클래스 자체의 함수로 호출합니다.
여기에는 클래스 함수가 있지만 클래스 변수는 없습니다. 실제로 함수가 호출될 때 개체가 전혀 없습니다. 따라서 클래스의 함수는 객체를 사용할 수 없으며(로컬 또는 전역 변수는 사용할 수 있음) $this 변수를 전혀 사용할 수 없습니다.
위의 예에서 클래스 B는 example() 함수를 재정의합니다. 클래스 A에 원래 정의된 함수 example()은 마스크되며 :: 연산자를 사용하여 클래스 A의 example() 함수에 액세스하지 않는 한 더 이상 적용되지 않습니다. 예: A::example() (실제로는 다음 장에서 소개할 parent::example()로 작성해야 합니다.)
그렇기 때문에 현재 개체에 개체 변수가 있을 수 있습니다. 따라서 객체 함수 내에서 $this 및 객체 변수를 사용할 수 있습니다.