이전에도 레지스트리 클래스를 작성했지만 여러 클래스를 등록할 수는 없습니다. 클래스는 아래 배열에 저장됩니다.
코드 복사 코드는 다음과 같습니다.
//기본 클래스
class webSite {/ /매우 간단한 기본 클래스
private $siteName
private $siteUrl
function __construct($siteName,$siteUrl){
$this->siteName=$siteName; 🎜> $this->siteUrl=$siteUrl;
}
function getName(){
return $this->siteName;
}
function getUrl(){
return $ this->siteUrl;
}
}
클래스 레지스트리 {//레지스트리 클래스 싱글턴 모드
private static $instance
private $values=array();//사용 배열 저장 클래스 이름
비공개 함수 __construct(){}//이 사용법은 이 클래스를 직접 인스턴스화할 수 없음을 결정합니다.
정적 함수 인스턴스(){
if (!isset(self::$instance)) {self::$instance=new self();}
return self::$instance
}
function get($key){//등록된 클래스 가져오기
if ( isset( $this->values[$key])){
return $this->values[$key]
}
return null
}
function set( $key ,$value){//등록 클래스 메소드
$this->values[$key]=$value
}
}
$reg=registry::instance(); >$reg->set("website",new webSite("WEB 개발 노트","www.chhua.com"));//클래스 등록
$website=$reg-> website");//클래스 가져오기
echo $website->getName();//웹 개발 노트 출력
echo $website->getUrl();//www.chhua.com 출력
?>
레지스트리의 기능은 시스템 수준의 개체 액세스 기능을 제공하는 것입니다. 어떤 학생들은 이것이 불필요하다고 말할 것이지만, 규모가 큰 프로젝트라면 실제로 수업을 등록할 필요는 없습니다.