클래스는 PHP에서 코드를 구성하는 단위로, 흔히 어떤 사물이나 서비스, 절차의 인스턴스를 나타내요.
static과 self 키워드를 사용하면, 속성과 메서드가 개별 인스턴스가 아니라 클래스를 기준으로 존재할 수 있어요. 모든 인스턴스에 공통일 수도 있고, 인스턴스가 하나도 없어도 존재할 수 있어요.
<?php
class Book
{
static $genre = 'Adventure';
static function getGenre()
{
return self::$genre;
}
}
// Usage
$genre = Book::$genre;
$genre = Book::getGenre();
정적 클래스 메서드는 자기 자신이 속한 클래스의 다른 정적 프로퍼티나 클래스 메서드만 호출할 수 있어요.
<?php
class Book
{
$name = 'Treasure Island';
static function getName()
{
// This static method cannot access the instance variable
return $this->name;
}
}