ch09 / exam09-09.php

정적 멤버(static ::) vs 인스턴스 멤버(->) 시각화

클래스 레벨의 Foo::$static 및 staticMethod()와 인스턴스 레벨 멤버 비교

PHP Source (ch09/exam09-09.php)
단계: 0 / 0
1<?php
3class Foo {
5public static $static = 'Static Property!<br>';
6public $nonStatic = 'NonStatic Property!<br>';
8public static function staticMethod() { return '[M]' . static::$static; }
12function nonStaticMethod() { return '[M]' . $this->nonStatic; }
15}
17$foo = new Foo();
19echo Foo::$static; // Static Property!
20echo Foo::staticMethod(); // [M]Static Property!
26echo $foo->staticMethod(); // 객체 변수로도 정적 메소드 호출 가능
28echo $foo->nonStatic; // NonStatic Property!
29echo $foo->nonStaticMethod();
31?>
준비 완료 실행 버튼 또는 다음 단계를 눌러주세요.
정적(Class) vs 인스턴스(Object) 메모리 영역
클래스 정적 영역 (Foo::)
Foo::$static = 'Static Property!'
Foo::staticMethod() = 접근 연산자 (::)
인스턴스 영역 ($foo->)
$foo->nonStatic = 'NonStatic Property!'
$foo->nonStaticMethod() = 화살표 연산자 (->)
http://localhost/ch09/exam09-09.php

static 키워드와 범위 지정 연산자 (::)