본문 바로가기
IT/php

2021-01-26-static

by 봉즙 2023. 2. 27.

layout : post
title : "static"

category : PHP

  1. static 키워드로 선언된 정적 프로퍼티는 인스턴스화된 객체에서는 접근할 수 없다.

  2. static 키워드로 선언된 정적 메소드는 인스턴스화된 객체에서도 접근할 수 있다.

  3. 정적 메소드 내에서는 $this 의사 변수를 사용할 수 없다.

class StaticMember
{
    public static $staticProperty = "static property";
    public static function showProperty()
    {
        echo self::$staticProperty;."<br>";
    }
}



echo StaticMember::showProperty();  // 호출 가능

echo StaticMember::$staticProperty; // 접근 가능



$var = new StaticMember();          // 인스턴스 생성
echo $var->showProperty();          // 호출 가능

//echo $var->$staticProperty;       // 접근 불가능

범위 지정 연산자(::)

클래스의 프로퍼티나 메소드에 접근하기 위해서는 인스턴스를 생성하고, 화살표 연산자(->)를 사용해야 하나 단순히 클래스의 정의 내에서 프로퍼티나 메소드를 사용하고 싶을 때는 범위 지정 연산자(::)를 사용 할 수 있다.

클래스의 정의 외부에서 위와 같은 멤버에 접근할 때는 클래스의 이름을 사용

echo OtherClassName::CONSTANT;
  1. self : 자기 자신에 접근할 때

  2. parent : 부모 클래스에 접근할 때

echo self::$property;

echo parent::CONSTANT;

'IT > php' 카테고리의 다른 글

2021-01-26-상수  (0) 2023.02.27
2021-01-26-상속  (0) 2023.02.27
2021-01-26-변수  (0) 2023.02.27
2021-01-26-배열  (0) 2023.02.27
2021-01-26-기본타입  (0) 2023.02.27

댓글