instance간에 서로 데이터를 공유해야 할 경우 이러한 데이터를 static 멤버라고 한다.
static멤버에는 변수와 메소드가 존재 하는데
class::변수명 으로 접근을 한다
::는 스코프 해결 연산자이다.
이 ::는 static과 같은 클래스의 재정의된 프로퍼티나 메소드에 접근할수 있도록 해주는 토큰이다.
정적 메소드의 호출은 마찬가지로 class::메소드명() 으로 접근한다.
정적메소드란 객체로부터가 아닌 클래스로부터 호출되는 메소드를 의미한다. 이 정적 메소드는 어떤 객체 속성에도 접근성을 갖지 않는다.
class A { static function print_hello() { echo "Hello World!"; } } A::print_hello(); // A클래스의 static형 print_hello(), Hello World! 출력 정적 멤버 함수의 경우 instance가 생성되기 전에 사용이 가능하므로, $this->를 사용할 수가 없지만, 정적멤버 변수는 사용 가능하다.
배운지 얼마 되자 않은 지식이라 잘못된 부분이 있을 수있습니다. 그러한 것은 댓글로 달아주시면 감사하겠습니다.
'Programming > PHP(더이상쓰지않음)' 카테고리의 다른 글
[PHP]::(double colon, Paamayim Nekudotayim)과 ->(arrow)의 차이 (0) | 2019.01.28 |
---|---|
[PHP]객체 상속(extends)에 대하여 (0) | 2019.01.28 |
[PHP]include와 require의 차이 (0) | 2019.01.28 |
[PHP]instance와 class (0) | 2019.01.28 |
[PHP]추상(abstract)에대하여 (0) | 2019.01.28 |