객체 지향프로그래밍에서는 ->와 같은 자체 연산자 중 일부를 사용하며, 이 기호는 객체의 자체 멤버에 액세스하는 데 사용됩니다. 다른 하나는 범위 결정 연산자입니다. 두 개의 콜론이 함께 연결됩니다(::). 이 표기법은 객체가 아닌 클래스 내의 멤버에 액세스하는 데 사용됩니다. 사용법은 다음과 같습니다:
ClassName::methodName(); ClassName::propertyName;
이 구조는 두 곳에서 사용될 수 있습니다:
1 클래스를 사용할 때 상위 클래스와 하위 클래스가 동일한 속성 및 메서드를 갖는 경우 이를 방지하는 데 사용할 수 있습니다. 착란 .
2. 클래스 외부에서는 이 연산자를 사용하여 객체 생성 없이 클래스 멤버에 액세스할 수 있습니다.
현재 객체의 인스턴스를 참조하기 위해 클래스에서 $this를 사용할 수 있는 것처럼 키워드 self는 현재 클래스에 대한 참조로 사용됩니다.
class SomeClass { function construct() { self::do(); } protected function do(){ echo "done!"; } }
이 코드에서 self::do()는 현재 클래스의 do() 메서드를 트리거합니다.
부모 클래스의 멤버를 참조하려면 parent 키워드와 범위 확인 연산자를 사용하여 참조할 수 있습니다.
class SomeOtherClass extends SomeClass { function construct() { parent::do(); } }
대부분의 경우 범위 확인 연산자를 사용하여 재정의된 메서드에 액세스합니다. 또한 이를 사용하여 정적 및 상수 멤버에 액세스할 수도 있습니다.
참고: 정적 속성과 마찬가지로 클래스 상수는 클래스(또는 해당 하위 클래스)의 모든 인스턴스에서 액세스할 수 있습니다. 그러나 그 가치는 바꿀 수 없습니다. 클래스 상수는 const 키워드와 상수 이름(달러 기호 없음)을 사용하여 생성됩니다. $obj->PI 또는 $obj::PI와 같은 객체를 통해 상수에 액세스할 수 없지만 ClassName::CONSTANT_NAME은 어디에서나 사용할 수 있습니다. 클래스 내의 메소드에서 self::CONSTANT_NAME을 사용할 수도 있습니다.
샘플 프로그램:
<?php class Rectangle { protected static $_count = 0; protected $width; protected $height; function construct($width, $height) { $this->width = $width; $this->height = $height; self::$_count++; echo "已成功创建".self::$_count."个Rectangle对象<br>"; } function destruct() { echo "销毁一个Rectangle对象<br>"; } function getArea() { echo "Rectangle面积是:".($this->width * $this->height."<br>"); } function getConunt() { return self::$_count; } } class Square extends Rectangle { function construct($side) { $this->width = $side; $this->height = $side; parent::$_count++; echo "已成功创建".parent::$_count."个Rectangle(Square)对象<br>"; } } $rec = new Rectangle(10, 5); $rec->getArea(); $square = new Square(10); $square->getArea(); ?>
실행 결과:
위 내용은 PHP에서 범위 결정 연산자를 사용하는 자세한 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!