정적 멤버

정적 멤버

■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