>  기사  >  백엔드 개발  >  PHP에서 일반적으로 사용되는 몇 가지 방법에 대한 지식 공유

PHP에서 일반적으로 사용되는 몇 가지 방법에 대한 지식 공유

零下一度
零下一度원래의
2017-06-23 15:20:571293검색

머리말

OOP

저는 오랫동안 PHP를 공부해왔는데, PHP/정적 속성과 정적 메서드/유닛의 추상 클래스와 추상 메서드를 정리하겠습니다. PHP에서는 Advantage 모드(단형 모드)/직렬화 및 역직렬화(직렬화 및 역직렬화).

1 PHP의 추상 클래스 및 추상 메서드
  
  1. 추상 메소드란 무엇인가요?
                      메소드 본문 {}이 없는 메소드는 abstract 키워드로 수정해야 합니다. 이러한 메소드를 추상 메소드라고 합니다. T 추상 함수 say(); // 추상 메서드

2. 추상 클래스란 무엇인가요?
추상 메소드를 포함하는 클래스를 추상 클래스라고 합니다. 추상 클래스는 abstract 키워드를 사용하여 수정해야 합니다. T ABSTRACT 클래스 Person {}

3. 추상 카테고리에 대한 주의사항 ① 추상 클래스는 비추상 메소드를 포함할 수 있습니다.
② 추상 메소드를 포함하는 클래스는 추상 클래스여야 합니다. ㅋㅋㅋ            ’ ’ ’                              인스턴스화를 제한하세요! ! !​ ​

​ 4. 하위 클래스가 추상 클래스를 상속하는 경우 하위 클래스는 상위 클래스의 모든 추상 메서드를 재정의해야 합니다. 서브클래스가 추상 클래스가 아닌 이상.象抽 5. 추상 클래스의 역할을 사용합니까?
            ① 인스턴스화를 제한합니다. (추상 클래스는 불완전한 클래스입니다. 내부의 추상 메소드에는 메소드 본체가 없으므로 인스턴스화할 수 없습니다.) ② 추상 클래스는 하위 클래스의 상속에 대한 사양을 제공합니다. 하위 클래스가 추상 클래스를 상속하는 경우 추상 클래스에 지정된 추상 메서드를 포함하고 구현해야 합니다.












2 정적 속성 및 정적 메서드

 
   1. static
     ① 속성과 메서드는 각각 정적 속성과 정적 메서드로 수정될 수 있으며, 클래스 속성과 클래스 메서드라고도 합니다.
    ② 정적 속성과 정적 메서드는 클래스 이름을 사용하여 직접 호출할 수 있습니다. "클래스 이름:: $ 정적 속성", "클래스 이름: 정적 메서드()"
person :: $ sex: say(); 객체 이전에 생성됨
            ④ 정적 메서드에서는 비정적 속성이나 메서드를 호출할 수 없습니다.
                                                                                  . 속성 메서드, 아직 인스턴스화가 생성되지 않음)
            ⑤ 클래스에서는 self 키워드를 사용하여 클래스를 참조할 수 있습니다. 이름. Er Class Person {
Static $ Sex = "Nan";
Function say() {
echo Self :: $ sex
}}
⑥ Static 속성은 공유됩니다. 즉, 많은 새로운 객체도 동일한 속성을 공유합니다.

  2. final
① 최종 수정 클래스, 이 클래스는 최종 클래스이므로 상속할 수 없습니다.
② 최종 수정 메서드, 이 메서드는 최종 메서드이므로 재정의할 수 없습니다.
        ③ final은 속성을 수정할 수 없습니다. ㅋㅋㅋ (Define() 문과 유사하게 const의 const 키워드 선언은 $와 함께 가져올 수 없으며 모두 대문자입니다!
            상수는 한번 선언되면 변경할 수 없습니다. 호출할 때는 클래스 이름 Person::constant를 사용하여 static과 동일합니다. ㅋㅋㅋ                        ]
3. -> 객체($this new로 생성된 객체)는 멤버 속성과 멤버 메서드를 사용합니다.
4. : : ① parent 키워드를 사용하여 상위 클래스에서 동일한 이름의 메서드를 호출합니다. parent::say();
            ② 클래스 이름(및 self)을 사용하여 정적 속성, 정적 메서드 및 클래스의 상수. ㅋㅋㅋ ~
  
 심플렉스 모드는 단일형 모드라고도 합니다
  
  
   클래스는 하나의 객체 인스턴스만 가질 수 있음을 보장할 수 있습니다. ㅋㅋㅋ
          ② 객체를 얻기 위한 외부 방법을 제공합니다. 메소드에서 객체가 비어 있는지 확인하고, 비어 있으면 객체를 생성하여 반환하고, 비어 있지 않으면 직접 다시 넣습니다. ③ 인스턴스 객체의 속성과 과거 객체의 메소드가 일치해야 합니다. 공전.
            ④ 이후에는 우리가 제공하는 정적 메소드만을 사용하여 객체를 생성할 수 있습니다. $s1 = Singleton::getSingle();





 1 class Singleton{ 2         private static $single=null; 3         private function __construct(){} 4         static function getSingle(){ 5             if(!self::$single){ 6                 self::$single = new self(); 7             } 8             return self::$single; 9         }10         function __destruct(){11             echo "啊,我被销毁了。";12         }13     }14     15     $s1 = Singleton::getSingle();16     $s2 = Singleton::getSingle();17     $s3 = Singleton::getSingle();18     $s4 = Singleton::getSingle();
단일 수익 모드 심플 코드

 
                                             ``               ``                         일련의 작업을 통해 객체를 문자열로 변환하는 과정을 직렬화라고 합니다. 객체를 역직렬화하는 과정을 역직렬화라고 합니다.
3. 언제? 직렬화가 사용되었나요?
              ① 객체를 네트워크를 통해 전송해야 하는 경우
                  ② 객체를 파일이나 데이터베이스에 유지해야 하는 경우
        4. 객체 직렬화 및 역직렬화를 구현하는 방법은 무엇입니까? ㅋㅋㅋ                                            ① 객체 직렬화를 실행하면 __sleep() 함수가 자동으로 실행됩니다.
              ② 배열의 값은 직렬화할 수 있는 속성입니다. 속성은
① object_ _wakeup() 메서드를 deserialize할 때 자동으로 호출됩니다.
          ② 자동으로 호출하면 deserialization으로 생성된 새 객체 속성을 다시 복사하는 데 사용됩니다. >    







5 제약 유형



4 직렬화 및 역직렬화(직렬화 및 역직렬화)
  
  1. 유형 제약: 변수가 해당 데이터 유형만 저장할 수 있도록 제한하기 위해 변수 앞에 데이터 유형을 추가하는 것을 말합니다. (이 작업은 강력한 유형의 언어에서 일반적입니다. PHP에서는 배열 및 객체 유형 제약만 있습니다.)
2. 유형 제약이 특정 클래스인 경우 이 클래스와 이 클래스의 하위 클래스 객체가 전달될 수 있습니다.
3. PHP에서 유형 제약은 함수 중간의 형식 매개변수에서만 발생할 수 있습니다. Er Class Person {}
Class Student Extend

Function Func (Person $ P) {
// 제약 함수의 매개변수는 Person 및 Person 하위 클래스에서만 허용됩니다.
echo
echo $ p-& gt; 이름
                                                              양식을 '익명 함수'라고 부릅니다.



🜜




6 매직 메소드 요약

5. __isset(): 객체의 비공개 속성을 감지하기 위해 isset()을 사용할 때 자동으로 호출됩니다. 감지된 속성 이름을 전달하고 isset($this->속성 이름)을 반환합니다. 6. __unset(): 객체의 비공개 속성을 삭제하기 위해 unset()을 사용할 때 자동으로 호출됩니다. 삭제된 속성 이름을 전달하고 메소드에서 unset($this->attribute name)을 실행합니다. 7. __toString(): 객체를 인쇄하기 위해 echo를 사용할 때 자동으로 호출됩니다. 객체를 인쇄하려는 경우 실제 콘텐츠를 반환합니다. 반환은 문자열이어야 합니다.

1. __construct( ): 자동으로 호출되는 생성자 객체가 새로 생성될 때
2. __destruct( ): 소멸자, 객체가 소멸될 때 자동으로 호출됩니다.
3. __get(): 클래스의 개인 속성에 액세스할 때 자동으로 호출됩니다. 읽은 속성명을 전달하고 $this->속성명을 반환합니다
4. __set(): 클래스의 private 속성에 값을 할당할 때 자동으로 호출됩니다. 설정해야 하는 속성 이름과 속성 값을 전달합니다
8. __call(): 클래스에서 정의되지 않거나 공개되지 않은 메서드를 호출할 때 자동으로 호출됩니다. 호출된 함수 이름과 매개변수 목록 배열을 전달합니다.
9. __clone(): clone 키워드를 사용하여 객체를 복제할 때 자동으로 호출됩니다. 새로 복제된 객체를 초기화하고 복사하는 함수입니다.
10. __sleep(): 객체가 직렬화되면 자동으로 호출됩니다. 값이 직렬화 가능한 속성인 배열을 반환합니다.
11. __wakeup(): 객체가 역직렬화되면 자동으로 호출됩니다. 새로 생성된 객체를 역직렬화하려면 초기화하고 복사하세요.
12. __autoload(): 함수는 클래스 외부에서 선언되어야 합니다. 라이브 클래스를 인스턴스화할 때 자동으로 호출됩니다. 인스턴스화된 클래스 이름을 전달하면 해당 클래스 파일이 클래스 이름을 사용하여 자동으로 로드될 수 있습니다. 공부할 때 잘못된 부분이 있을 수 있으며, 비판은 환영합니다.

매일 조금씩 반성하고 복습하고 얻어가세요--------- 더 나은 자신을 기대합니다

위 내용은 PHP에서 일반적으로 사용되는 몇 가지 방법에 대한 지식 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

관련 기사

더보기