on
정적 멤버
정적 멤버
■static 키워드
클래스를 정의할 때 static 키워드를 사용한 프로퍼티와 메소드는 해당 클래스의 인스턴스를 생성하지 않아도 접근할 수 있다. 이러한 프로퍼티와 메소드를 정적 멤버라고 한다.
정적 멤버의 특징
1. static 키워드로 선언된 정적 프로퍼티는 인스턴스화된 객체에서는 접근할 수 없다.
2. static 키워드로 선언된 정적 메소드는 인스턴스화된 객체에서도 접근할 수 있다.
3. 정적 메소드 내에서는 $this를 사용할 수 없다.
class StaticMember { public static $staticProperty = "static property"; public static function showProperty() { echo self::$staticProperty;.""; } } echo StaticMember::showProperty(); // 호출 가능 echo StaticMember::$staticProperty; // 접근 가능 $var = new StaticMember(); // 인스턴스 생성 echo $var->showProperty(); // 호출 가능 //echo $var->$staticProperty; // 접근 불가능
■범위 지정 연산자(::)
클래스의 프로퍼티나 메소드에 접근하기 위해서는 인스턴스를 생성하고, 화살표(->)를 사용해야 한다. 하지만, 단순히 클래스의 정의 내에서 프로퍼티나 메소드를 사용하고 싶을 때는 범위 지정 연산자(::)를 사용할 수 있다.
echo OtherClassName::CONSTANT;
self : 자기 자신에게 접근할 때
parent : 부모 클래스에 접근할 때
echo self::$property; echo parent::CONSTANT;
from http://woong971.tistory.com/40 by ccl(A) rewrite - 2021-10-30 15:00:26