PHP5에는 많은 객체지향 아이디어가 추가되었습니다. PHP5의 객체지향 아이디어는 Java의 객체지향 아이디어에 더 가깝습니다. 여기에서는 PHP5를 배우는 친구들에게 도움이 되기를 바라면서 PHP5의 static 및 const 키워드의 기능을 설명합니다.
(1) static
클래스의 static 키워드는 멤버를 static으로 설명하는 데 사용됩니다. static은 클래스에 속하고 어떤 객체 인스턴스에도 속하지 않기 때문에 외부 액세스를 제한할 수 있습니다. 클래스는 액세스할 수 없고 클래스의 인스턴스에서만 공유되므로 프로그램은 멤버를 보호해야 합니다. 클래스의 정적 변수는 전역 변수와 매우 유사하며 클래스의 모든 인스턴스에서 공유될 수 있습니다. 전역 함수와 마찬가지로 클래스의 정적 메서드에서도 마찬가지입니다. 클래스의 정적 메서드는 클래스의 정적 속성에 액세스할 수 있습니다. 또한 정적 멤버는 self를 사용하여 액세스해야 합니다. 이를 사용하면 오류가 발생합니다.
(이것과 self의 유사점과 차이점은 다음을 참조하세요: http://blog.csdn.net/heiyeshuwu/archive/2004/11/03/165828.aspx )
(2)const
const는 C의 #define과 유사하게 상수를 정의하는 키워드로, 프로그램에서 그 값이 변경되면 오류가 발생합니다.
위 코드 예시: (참고: 다음 코드는 phpe.net에서 가져온 것입니다.)
코드 복사 코드는 다음과 같습니다.
class Counter
{
private static $count = 0;//정적 속성 정의
const VERSION = 2.0;//상수 정의
//생성자
함수 __construct()
{
self::$count;
}
//소멸자
함수 __destruct()
{
self: :$ count--
}
//정적 메소드 정의
static function getCount()
{
return self::$count
}
}
//인스턴스 만들기
$c = new Counter();//인쇄 수행
print( Counter::getCount(). "
n" ) //직접 사용 정적 메서드에 액세스하기 위한 클래스 이름 입력 Counter::getCount
//클래스 버전 인쇄
print( "사용된 버전: " .Counter::VERSION. "
n"
?>