PHP

static 정의

역발산기개세 2022. 3. 4. 12:34

static이란

클래스를 정의할 때 static 키워드를 사용한 프로퍼티와 메소드는 해당 클래스의 인스턴스를 생성하지 않아도 접근할 수 있게 됩니다. 이러한 프로퍼티와 메소드를 정적 멤버(static member)라고 합니다.

 

코트 예시

<?php
    class A
    {
        public static $message = 'Hello, werld';

        public static function foo()
        {
            return static::who();
        }
        public static function who()
        {
            var_dump(__CLASS__);
        }
    }

    $a = new A();
    $a->foo(); // A 출력
    A::who(); // A 출력
    $a::who(); // A 출력
    A->who(); // 오류
?>

 

정리

기존 클래스 밖에서 해당하는 변수나 함수에 접근하기 위해서는 인스턴스를 생성해서 접근을 해야 했지만

static은 바로 접근이 가능합니다. 접근을 할 경우에는 클래스명::접근하고자하는 변수나 함수로 작성을 하면 됩니다.