>  기사  >  백엔드 개발  >  PHP 복제본은 객체 지향 프로그래밍을 재검토합니다.

PHP 복제본은 객체 지향 프로그래밍을 재검토합니다.

不言
不言원래의
2018-04-08 15:07:43938검색

이 기사에서는 객체 지향 프로그래밍을 검토하기 위해 PHP 클론을 소개합니다. 이제 모든 사람과 공유합니다. 필요한 친구가 참조할 수 있습니다.

PHP 객체 복사
클론 기능, 새 객체를 복사하면 모든 속성과 원본을 유지해야 합니다. window 동일하지만 새 객체여야 합니다. (새 개체가 아닌 경우 한 창의 변경 사항이 다른 창에 영향을 미치거나 개체 A가 개체 B에 대한 참조를 보유하고 개체 A를 복사할 때 사용하려는 개체는 더 이상 개체 B가 아니라 개체입니다. B의 복사본. 이때 개체 A의 복사본을 가져와야 합니다.)

PHP Deep Copy 및 Shallow Copy
PHP5부터 new 연산자가 자동으로 참조를 반환합니다. 객체는 식별자를 사용하여 실제 객체 콘텐츠에 액세스합니다.
깊은 복사란 원래 참조된 객체가 아닌 복사된 새 객체에만 참조된 객체의 변수를 복사하는 것을 말합니다.
PHP는 두 가지 방법으로 깊은 복사를 구현할 수 있습니다. 1️⃣ 복제 2️⃣ 객체를 직렬화하여 먼저 객체를 직렬화한 다음 역직렬화합니다.

ResumeA));

__clone 메소드에는 매개변수가 없으며 자동으로 두 개의 포인터가 포함됩니다. 클래스 및 객체클래스: 동일한 속성과 서비스를 가진 객체의 모음입니다.

객체: 클래스 인스턴스화의 결과는 객체입니다.


생성자 메서드:

클래스에서는 생성자 하나만 선언할 수 있지만 생성자는 객체가 생성될 때마다 한 번만 호출됩니다. 따라서 일반적으로 몇 가지 유용한 초기화 작업을 수행하는 데 사용됩니다. 예를 들어 해당 속성에는 객체 생성 시 초기값이 할당됩니다.

Destructor

클래스를 삭제하기 전에 현재 작업을 수행하거나 일부 기능을 완료하세요
객체에 대한 모든 참조가 삭제되거나 객체가 명시적으로 소멸될 때, 즉 객체가 메모리에 있을 때 소멸자가 실행됩니다. 소멸자가 호출됩니다. 소멸되기 전

클래스 객체는 실제로 스택 형태로 메모리에 배치되기 때문에 최종적으로 소멸자가 호출되면 후입선출 원칙을 따릅니다


객체지향 프로그래밍의 세 가지 주요 특징 :

Encapsulation Inheritance Polymorphism

Encapsulation: 객체의 모든 속성과 모든 서비스를 결합하여 분할할 수 없는 독립된 단위(객체)를 형성하고, 정보 은닉, 즉 객체의 내부 세부 사항을 최대한 숨깁니다
상속 단일 상속(PHP) JAVA, C++ 파생 클래스는 여러 기본 클래스에서 파생될 수 있습니다. 정의된 새 데이터 유형에는 새로 정의된 멤버뿐만 아니라 이전 멤버도 포함됩니다. 새 클래스를 파생시키는 데 사용되는 기존 클래스를 기본 클래스(부모 클래스 및 슈퍼 클래스라고도 함)라고 부릅니다. 기존 클래스에서 파생된 새 클래스를 파생 클래스라고 하며 하위 클래스라고도 합니다.

PHP 오버로딩은 상위 클래스의 기존 메서드를 재정의하는 하위 클래스를 나타냅니다.

final은 하위 클래스에 의해 재정의될 수 없는 속성 멤버를 정의합니다.


static 및 const
static은 멤버 속성과 멤버 메서드가 정적임을 설명하고,
정적 멤버는 정적 멤버는 클래스에 속하고 어떤 개체의 인스턴스에도 속하지 않기 때문에 외부 액세스를 제한합니다. 클래스가 처음 로드될 때 공간이 할당되어 다른 클래스에서 액세스할 수 없습니다. 클래스의 힘을 공유해야만 클래스를 어느 정도 보호할 수 있습니다.

정적 정적 멤버는 정적 메서드에서 액세스할 수 없습니다.

const 수정자의 멤버 속성에 대한 액세스 방법은 정적 수정 멤버의 액세스 방법과 유사하며 메서드에서 self를 사용합니다. , 그러나 $를 사용할 필요는 없습니다. 객체를 사용하여 기호에 액세스할 수 없습니다

객체 직렬화
객체를 직렬화해야 하는 두 가지 상황이 있습니다. 첫 번째 상황은 객체를 네트워크에서 전송할 때 직렬화하는 것입니다. 두 번째 상황은 파일이나 데이터베이스에 객체를 쓸 때 직렬화를 사용하는 것입니다.

serialize() 함수의 매개변수는 객체 이름이고, 반환값은 문자열입니다.

객체를 직렬화할 때 __sellp ---(일부 멤버 속성은 이때 숨겨질 수 있음) 메서드가 자동으로 실행됩니다. 역직렬화는 __wakup() ---(이 때 값을 할당할 수 있음)을 실행하는 것입니다. 방법.

__sleep() 함수는 매개변수를 허용하지 않지만 직렬화해야 하는 속성이 포함된 배열을 반환합니다. 포함되지 않은 속성은 직렬화 중에 무시됩니다. __sleep() 메서드가 없으면 PHP는 모든 속성을 저장합니다.


php 객체 복사

clone 기능, 새 객체 복사, 모든 속성은 원래 창과 동일하게 유지되어야 하지만 새 객체여야 합니다. (새 개체가 아닌 경우 한 창의 변경 사항이 다른 창에 영향을 미치거나 개체 A가 개체 B에 대한 참조를 보유하고 개체 A를 복사할 때 사용하려는 개체는 더 이상 개체 B가 아니라 개체입니다. B의 복사본. 이때 개체 A의 복사본을 구해야 합니다.)

PHP 깊은 복사 및 얕은 복사
PHP5부터 new 연산자는 자동으로 참조를 반환합니다. 객체는 식별자를 사용하여 실제 객체 콘텐츠에 액세스합니다.
깊은 복사란 원래 참조된 객체가 아닌 복사된 새 객체에만 참조된 객체의 변수를 복사하는 것을 말합니다.
PHP는 두 가지 방법으로 깊은 복사를 구현할 수 있습니다. 1️⃣ 복제 2️⃣ 객체를 직렬화하여 먼저 객체를 직렬화한 다음 역직렬화합니다.

ResumeA));

__clone 메소드에는 매개변수가 없으며 자동으로 두 개의 포인터가 포함됩니다. 클래스 및 객체클래스: 동일한 속성과 서비스를 가진 객체의 모음입니다.

객체: 클래스 인스턴스화의 결과는 객체입니다.


생성자 메서드:

클래스에서는 생성자 하나만 선언할 수 있지만 생성자는 객체가 생성될 때마다 한 번만 호출됩니다. 따라서 일반적으로 몇 가지 유용한 초기화 작업을 수행하는 데 사용됩니다. 예를 들어 해당 속성에는 객체 생성 시 초기값이 할당됩니다.

Destructor

클래스를 삭제하기 전에 현재 작업을 수행하거나 일부 기능을 완료하세요
객체에 대한 모든 참조가 삭제되거나 객체가 명시적으로 소멸될 때, 즉 객체가 메모리에 있을 때 소멸자가 실행됩니다. 소멸자가 호출됩니다. 소멸되기 전

클래스 객체는 실제로 스택 형태로 메모리에 배치되기 때문에 최종적으로 소멸자가 호출되면 후입선출 원칙을 따릅니다


객체지향 프로그래밍의 세 가지 주요 특징 :

Encapsulation Inheritance Polymorphism

Encapsulation: 객체의 모든 속성과 모든 서비스를 결합하여 분할할 수 없는 독립된 단위(객체)를 형성하고, 정보 은닉, 즉 객체의 내부 세부 사항을 최대한 숨깁니다
상속 단일 상속(PHP) JAVA, C++ 파생 클래스는 여러 기본 클래스에서 파생될 수 있습니다. 정의된 새 데이터 유형에는 새로 정의된 멤버뿐만 아니라 이전 멤버도 포함됩니다. 새 클래스를 파생시키는 데 사용되는 기존 클래스를 기본 클래스(부모 클래스 및 슈퍼 클래스라고도 함)라고 부릅니다. 기존 클래스에서 파생된 새 클래스를 파생 클래스라고 하며 하위 클래스라고도 합니다.

PHP 오버로딩은 상위 클래스의 기존 메서드를 재정의하는 하위 클래스를 나타냅니다.

final은 하위 클래스에 의해 재정의될 수 없는 속성 멤버를 정의합니다.


static 및 const
static은 멤버 속성과 멤버 메서드가 정적임을 설명하고,
정적 멤버는 정적 멤버는 클래스에 속하고 어떤 개체의 인스턴스에도 속하지 않기 때문에 외부 액세스를 제한합니다. 클래스가 처음 로드될 때 공간이 할당되어 다른 클래스에서 액세스할 수 없습니다. 클래스의 힘을 공유해야만 클래스를 어느 정도 보호할 수 있습니다.

정적 정적 멤버는 정적 메서드에서 액세스할 수 없습니다.

const 수정자의 멤버 속성에 대한 액세스 방법은 정적 수정 멤버의 액세스 방법과 유사하며 메서드에서 self를 사용합니다. , 그러나 $를 사용할 필요는 없습니다. 객체를 사용하여 기호에 액세스할 수 없습니다

객체 직렬화
객체를 직렬화해야 하는 두 가지 상황이 있습니다. 첫 번째 상황은 객체를 네트워크에서 전송할 때 직렬화하는 것입니다. 두 번째 상황은 파일이나 데이터베이스에 객체를 쓸 때 직렬화를 사용하는 것입니다.

serialize() 함수의 매개변수는 객체 이름이고, 반환값은 문자열입니다.

객체를 직렬화할 때 __sellp ---(일부 멤버 속성은 이때 숨겨질 수 있음) 메서드가 자동으로 실행됩니다. 역직렬화는 __wakup() ---(이 때 값을 할당할 수 있음)을 실행하는 것입니다. 방법.

__sleep() 함수는 매개변수를 허용하지 않지만 직렬화해야 하는 속성이 포함된 배열을 반환합니다. 포함되지 않은 속성은 직렬화 중에 무시됩니다. __sleep() 메서드가 없으면 PHP는 모든 속성을 저장합니다.


관련 권장 사항:

PHP의 인용 및 복제에 대한 자세한 설명

위 내용은 PHP 복제본은 객체 지향 프로그래밍을 재검토합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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