PHP에서 객체 복사 및 복제
* 객체 복사 및 복제
* 1. 기본적으로 객체는 참조로 전달됩니다(실제로는 객체 식별자의 복사본이며 나중에 자세히 설명합니다)
* 2. 즉, 두 객체 변수 실제로는 동일한 객체에 대한 참조입니다
* 3. 새 객체를 생성하려면 clone 키워드를 사용하여 현재 객체를 복제해야 합니다
* 4. clone 키워드 사용 시 __clone()이 있는 경우
* 5. __clone() 메소드는 새로 생성된 객체에서 실행됩니다
* 6. __clone() 메소드는 복사할 대상과 복제 시 완료할 기본 작업을 제어할 수 있습니다
class Member { //声明三个私有属性 private $name; //会员名 private $email; //会员邮箱 private $score; //会员积分 //构造方法 public function __construct($name='',$email='',$score=0) { $this->name = $name; $this->email = $email; $this->score = $score; } //查询器(暂时省略访问控制) public function __get($name) { return $this->$name; } //设置器(暂时省略访问控制) public function __set($name,$value) { $this->$name = $value; } //克隆魔术方法在对象克隆时自动调用,针对新对象进行初始化操作 public function __clone() { $this->score = 0; } }
// 멤버 클래스 Member 인스턴스화, 멤버 객체 생성 $member
$member = new Member('peter','peter@php.cn',1000);
//액세스 테스트
echo $member->score;
//멤버 객체 복사
$member1 = $member;
//새 변수 이름 $member1을 사용하여 객체 정보 업데이트
$member1->score = 2000;
//new 사용 액세스
echo $member1->score; echo '<hr>';
에 개체 변수 이름 $member1//원래 개체 이름 $member를 사용하여
echo $member->score;
에 액세스 * 결론:
* 1. 새로운 변수 수정 결과가 원래 개체 변수에 반영됩니다
* 2 . 이 두 변수는 실제로 동일한 객체를 가리킨다는 점을 설명하세요
* 3. 즉, 객체는 기본적으로 참조로 전달됩니다
* 4. 즉, 두 번째 변수 이름인 $member1은 의 별칭일 뿐입니다. 원래 변수이고 새 개체가 생성되지 않습니다
* 5. 그냥 원본 개체의 식별자에 대한 새 이름일 뿐이라고 이해하면 됩니다.
var_dump($member1); //对象id=1 var_dump($member); //对象id=1
//$member1과 $member는 두 개의 동일한 개체라는 설명, 그냥 다른 이름으로
//완전히 새로운 객체를 생성하려면 어떻게 해야 할까요? clone
$member2 = clone $member;
//먼저 객체 변수 $member2
echo $member2->score; //目前是原始值2000
//점수 값 수정
$member2->score = 5000; echo '<hr>';
//$member2의 점수를 다시 확인하세요
echo $member2->score; //新值5000 echo '<hr>';
//생각해 보세요. 내 수정이 원래 $member 변수의 점수 속성 값에 영향을 미치나요?
echo $member->score; //发现原对象的score属性值仍为2000,未发生变化
//왜 이것은 복제 기술을 사용하여 두 개의 완전히 다른 객체 변수를 생성했기 때문입니다
//아래에서 확인하세요
var_dump($member); //变量id是1 var_dump($member2); //变量id是2
//이 두 객체 변수의 ID가 다르므로 완전히 다른 두 객체임을 나타냅니다.
//그러한 것을 완료하세요 아래 작업: 새 멤버 객체를 생성할 때 멤버의 포인트를 0으로 지우려면 어떻게 해야 할까요?
//복제된 새 객체를 전처리하려면 Member 클래스에 __clone() 복제 매직 메소드를 생성하세요
// 다시 한번 시연해 보세요
//현재 포인트를 확인하세요
echo $member->score;
//복제하여 새로운 개체 $member3
$member3 = clone $member;
//새 개체 $member3의 점수 값을 확인하여 수업에 __clone()이 있는지 확인하세요. 효과가 있나요?
echo '<hr>'; echo $member3->score; //0,说明克隆魔术方法已经生效
위 내용은 PHP에서 객체 복사 및 복제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PHP 배열 작업은 PHP 개체 작업보다 빠릅니다. 1. 개체 작업에는 개체 생성, 메서드 호출 및 속성 액세스와 같은 단계가 포함되므로 성능이 느려질 수 있습니다. 여러 값을 보유하고, 배열에서 다양한 방법과 기능을 사용하고, 배열에서 빠르고 효율적인 작업을 수행할 수 있습니다.

루프에서 PHP 배열을 객체로 변환하는 방법에는 두 가지가 있습니다. 1. 강제 유형 변환을 사용하여 배열을 객체로 변환하고 배열의 키는 유효한 객체 속성 이름이어야 합니다. 배열 키가 객체의 속성 이름으로 유효한지 여부에 관계없이 Copied 배열의 요소를 객체에 추가합니다.

PHP 객체와 배열의 차이점은 다음과 같습니다. 1. 객체는 복합 데이터 유형인 반면 배열은 단순 데이터 유형입니다. 2. 객체의 속성과 메소드는 객체의 인스턴스를 통해 액세스할 수 있지만 요소는 객체의 인스턴스를 통해 액세스할 수 있습니다. 3. 객체는 속성과 메서드를 캡슐화하는 엔터티인 반면 배열은 순서가 지정된 요소 모음입니다. 4. 객체는 PHP에서 참조로 전달되는 반면 배열은 값으로 전달됩니다. PHP 5. 객체는 상태와 동작을 포함하는 엔터티를 설명하는 데 적합한 반면, 배열은 대량의 유사한 데이터를 저장하고 처리하는 데 적합합니다.

PHP에서 객체 변수를 사용하려면 특정 코드 예제가 필요합니다. PHP에서 객체 변수를 사용하면 객체를 더 쉽게 관리하고 조작할 수 있습니다. 객체 변수는 객체 인스턴스를 저장하는 데이터 유형입니다. 객체는 클래스의 메서드를 호출하고 클래스의 속성에 액세스하여 조작할 수 있습니다. 다음은 PHP에서 객체 변수를 사용하는 방법을 자세히 소개하고 해당 코드 예제를 제공합니다. 객체 생성 PHP에서는 new 키워드를 사용하여 객체를 생성할 수 있습니다. 예는 다음과 같습니다: classCar{public$colo

PHP 배열은 객체가 아닙니다. PHP에서 배열과 객체는 서로 다른 두 가지 데이터 유형입니다. 배열은 정렬된 데이터의 모음이고 객체는 속성뿐만 아니라 메서드도 포함하는 클래스의 인스턴스화 결과입니다. 객체는 데이터에 대한 작업을 캡슐화할 수 있지만 배열은 캡슐화할 수 없습니다.

PHP는 다양한 애플리케이션, 특히 웹 애플리케이션을 개발하는 데 사용할 수 있는 매우 인기 있는 프로그래밍 언어입니다. PHP에서 객체지향 프로그래밍은 중요한 기능 중 하나입니다. 이 기사에서는 PHP에서 객체 메서드를 호출하는 방법을 살펴보겠습니다.

PHP에서는 PHP 표준 라이브러리의 ReflectionClass 클래스를 사용하여 객체의 모든 메소드를 얻는 것이 매우 간단합니다. ReflectionClass 클래스는 클래스 이름, 속성, 메소드 등을 포함하여 PHP에서 클래스의 모든 정보를 반영하는 메소드를 제공합니다. 아래에서는 ReflectionClass 클래스를 사용하여 객체의 모든 메서드를 얻는 방법을 자세히 소개합니다.

PHP는 객체와 클래스의 개념을 지원하는 객체지향 프로그래밍 언어입니다. PHP에서 객체는 메소드라고 불리는 데이터와 함수를 저장할 수 있는 클래스의 인스턴스입니다. PHP 객체와 클래스의 기능을 사용하면 코드를 쉽게 구성하고 코드 재사용성을 높일 수 있습니다. 이 기사에서는 PHP 객체와 클래스의 함수 예제와 그 기능을 소개합니다. 생성자(__construct) 생성자는 객체가 생성될 때 자동으로 호출되는 함수입니다. 객체의 속성을 초기화하고 수행하는 데 사용됩니다.
