[php] static 멤버 및 범위지정연산자

[php] static 멤버 및 범위지정연산자 updated_at: 2024-10-25 05:47

정적(static) 멤버 및 범위지정연산자(::)

정적(static) 멤버

PHP4에서의 범위연사자와 유사한 기능으로 클래스의 인스턴스 생성없이도 클래스에 접근 가능하게 해 주는 역활을 합니다.
특징은 아래와 같습니다.

  • static 키워드로 선언된 정적 프로퍼티는 인스턴스화된 객체에서는 접근할 수 없습니다.
  • static 키워드로 선언된 정적 메소드는 인스턴스화된 객체에서도 접근할 수 있습니다.
  • 정적 메소드 내에서는 $this 의사 변수를 사용할 수 없습니다, 대신 "self::" 를 이용합니다.
class StaticMember
{
  public static $staticProperty = "static property";
  public static function showProperty()
  {
    return self::$staticProperty;
  }
}
 
StaticMember::showProperty(); // 호출 가능
StaticMember::$staticProperty; // 접근 가능

$member = new StaticMember(); // 인스턴스 생성
$member->showProperty(); // 호출 가능
$member->$staticProperty; // 접근 불가능

범위 지정 연산자(::)

범위 지정 연산자(::)는 클래스의 상수, 정적(static) 멤버 또는 재정의된 멤버에 접근할 수 있게 해줍니다.
또한, 다음 키워드를 사용하면 클래스의 정의 내에서 특정 프로퍼티나 메소드에 접근할 수 있습니다.

  • self : 자기 자신에 접근할 때
  • parent : 부모 클래스에 접근할 때
OtherClass::CONSTANT; // 정적 함수 내에서 다른 클래스의 정적함수나 상수 호출시
self::$property; // 정적 함수내에서 다른 함수 호출시
parent::CONSTANT; // 정적 함수내에서 부모 클래스의 정정 함수사 상수 호출시
평점을 남겨주세요
평점 : 5.0
총 투표수 : 1

질문 및 답글