>  기사  >  백엔드 개발  >  PHP에서 범위 결정 연산자를 사용하는 자세한 예

PHP에서 범위 결정 연산자를 사용하는 자세한 예

黄舟
黄舟원래의
2017-07-02 11:42:181132검색

객체 지향프로그래밍에서는 ->와 같은 자체 연산자 중 일부를 사용하며, 이 기호는 객체의 자체 멤버에 액세스하는 데 사용됩니다. 다른 하나는 범위 결정 연산자입니다. 두 개의 콜론이 함께 연결됩니다(::). 이 표기법은 객체가 아닌 클래스 내의 멤버에 액세스하는 데 사용됩니다. 사용법은 다음과 같습니다:

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.