PHP5에는 많은 객체지향 아이디어가 추가되었습니다. PHP5의 객체지향 아이디어는 Java의 객체지향 아이디어에 더 가깝습니다. 여기에서는 PHP5를 배우는 친구들에게 도움이 되기를 바라면서 PHP5의 static 및 const 키워드의 기능을 설명하겠습니다.
(1) 정적
클래스의 static 키워드는 멤버가 정적임을 설명합니다. static 이후의 멤버는 클래스에 속하고 다른 클래스에는 액세스할 수 없으며 해당 클래스에만 액세스할 수 있기 때문에 외부 액세스를 제한할 수 있습니다. . 인스턴스 공유를 통해 프로그램이 회원을 완벽하게 보호할 수 있습니다. 클래스의 정적 변수는 전역 변수와 매우 유사하며 클래스의 모든 인스턴스에서 공유될 수 있습니다. 전역 함수와 마찬가지로 클래스의 정적 메서드에서도 마찬가지입니다. 클래스의 정적 메서드는 클래스의 정적 속성에 액세스할 수 있습니다. 또한 정적 멤버는 self를 사용하여 액세스해야 합니다. 이를 사용하면 오류가 발생합니다.
(이것과 self의 유사점과 차이점은 http://blog.csdn.net/heiyeshuwu/archive/2004/11/03/165828.aspx 를 참조하세요)
(2) 불변
const는 C의 #define과 유사하게 상수를 정의하는 키워드이다. 프로그램에서 그 값이 변경되면 에러가 발생한다.
위 코드의 예를 들어보세요. (참고: 다음 코드는 phpe.net에서 가져온 것입니다.)
<?php
class Counter
{
private static $count = 0;//정적 속성 정의
const VERSION = 2.0;//상수 정의
//생성자
함수__구조()
{
자기::$count++;
}
//오물 소각로
함수 __destruct()
{
self::$count--;
}
//정적 메소드 정의
정적 함수 getCount()
{
self::$count를 반환합니다.
}
}
//인스턴스 생성
$c = new Counter();
//인쇄 수행
print( Counter::getCount(). "<br>n" ); //정적 메서드에 액세스하려면 클래스 이름을 직접 입력하세요. Counter::getCount
//클래스 버전을 인쇄합니다.
print( "사용된 버전: " .Counter::VERSION. "<br>n" );
글쎄요
, 기본적으로 이 시점에서 제가 알고 있는 것을 분명히 밝혔지만 아직은 정적이 조금 불편합니다. 이해합니다. 안내해 주세요!
내 이메일: [email protected]
WriteTime 2004-11-3 21:00
http://dev.csdn.net/author/heiyeshuwu/23f0d08c11bc4509b41844855d5c7063.html