>  기사  >  백엔드 개발  >  PHP 객체 인스턴스화 싱글톤 방법에 대한 자세한 설명

PHP 객체 인스턴스화 싱글톤 방법에 대한 자세한 설명

怪我咯
怪我咯원래의
2017-07-12 11:30:131476검색

단일 사례 모드(책임 모드):

간단히 말해서 객체( 디자인 패턴 을 배우기 전에 객체 지향 사고에 대해 더 많이 알아야 함)는 특정 작업만 담당합니다.

싱글톤 클래스:

1 Constructor는 비공개로 표시되어야 합니다(액세스 제어: 외부 코드가 새 연산자를 사용하여객체를 생성하는 것을 방지하려면). 싱글톤 클래스는 다른 클래스에서 인스턴스화할 수 없으며 자체적으로만 인스턴스화할 수 있습니다.

2. 클래스의 인스턴스를 저장하는 정적 멤버 변수가 있습니다.

3. 이 인스턴스에 액세스하기 위한 공용 정적 메서드가 있습니다. (getInstance() 메서드는 일반적으로 싱글톤 클래스를 인스턴스화하는 데 사용되며, instanceof 연산자를 사용하여 클래스가 인스턴스화되었는지 감지) )

또한 객체가 복사(복제)되는 것을 방지하기 위해 clone() 메서드를 생성해야 합니다.

PHP 싱글톤 모드를 사용하는 이유는 무엇입니까?

1. PHP 애플리케이션은 주로 데이터베이스 애플리케이션에 있으므로 애플리케이션에는 많은 수의 데이터베이스 작업이 있습니다. 싱글톤 모드를 사용하면 새로운 작업에 많은 리소스가 소비되는 것을 피할 수 있습니다.

2. 시스템의 특정 구성 정보를 전역적으로 제어하기 위해 클래스가 필요한 경우 ZF의 FrontController 섹션에서 이를 쉽게 구현할 수 있습니다.

3. 페이지 요청에서는 모든 코드(예: 데이터베이스 작업 클래스 db)가 하나의 클래스에 집중되어 있기 때문에 디버깅하기 쉽습니다. 클래스에 후크를 설정하고 로그를 출력하여 모든 곳에서 var_dump 및 echo를 방지할 수 있습니다.

이 글에서는 주로 PHP에서 객체단일 사례를 인스턴스화하는 방법을 소개하는데, 이는 참조 값이 매우 좋습니다. 편집기를 사용하여 살펴보겠습니다.

PHP가 객체 단일 사례를 인스턴스화하는 방법:

세 가지 비공개 및 공개 1개: 비공개 메서드 2개, 비공개 property 1개, 공개 메서드 1개

  private function construct(){} //不可以继承构造方法
  private function clone(){}//不可以继承克隆方法
  privare static $_instance;

공개 1개 

public static function getinstance(){
    if(!isset(static:$_instance)){
      static::$_instance=new static();
      }
      return static::$_instance;
  }

위 내용은 PHP 객체 인스턴스화 싱글톤 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.