변수 할당과 객체 할당의 비교
<?php // 声明一个变量并赋值 $a = 1; // 将数据类型的值 赋值 给一个变量 $b = $a; // 修改$a的值 $a = 2; // $a和$b是两个独立的内存空间修改其中一个另一个不受影响 echo $b; // 1 class Person { public $name; public $age; } // 将对象类型的数据 赋值 给一个变量 $p = new Person; // 通过对属性修改值,来确定面向对象中 对象的传值方式 $p->name = 'jesse'; // 若是成功修改值,则是引用传值 echo $p->name; // jesse ?>
사례 설명:
변수 할당 방법과 객체 할당 방법을 비교해 보면, 코드 5행의 할당 방법은 "복사 할당"이고, 따라서 소스 값($a 값)이 수정되더라도 $b 값은 영향을 받지 않습니다. $a와 $b의 메모리 관계 다이어그램은 다음과 같습니다.
코드의 20번째 줄은 $p 변수에 데이터 유형을 할당하고, $p를 통해 객체 내부의 값을 성공적으로 수정합니다. 변수의 전송 방법을 통해 이것이 참조 전송임을 증명합니다. 값과 메모리 관계 다이어그램은 다음과 같습니다.
코드의 20번째 줄은 $p 변수에 데이터 유형을 할당하고 성공적으로 수정했습니다. $p를 통해 객체 내부의 값을 변수의 값 전달 방식과 비교해 보면 이것이 참조 전달, 메모리 관계임을 증명합니다. 그림은 다음과 같습니다.
<?php class Person { public $name; public $age; // 将对象类型的数据 赋值 给一个变量 $p = new Person; // 通过对属性修改值,来确定面向对象中 对象的传值方式 $p->name = 'jesse'; // 将对象赋予另一变量 $m = $p; // 另一变量修改属性值 $m->name = 'Marry'; // 输出源变量 赋值变量访问内部属性的结果 echo $p->name, $m->name; } ?>
코드의 12번째 줄이 가장 많습니다. 이 기사의 "키워드" 코드. 등호의 오른쪽은 개체이고 왼쪽은 변수입니다. 그러면 $m이 개체를 복사한다는 것입니다. 아니면 참조로 전달하시겠습니까? 이 코드의 메모리 관계는 다음과 같습니다.
그래서 마지막 두 객체의 속성값은 Marry!!!
값이 참조로 전달되면 어떻게 될까요?
<?php class Person { public $name; public $age; } // 将对象类型的数据 赋值 给一个变量 $p = new Person; // 通过对属性修改值,来确定面向对象中 对象的传值方式 $p->name = 'jesse'; // 将对象赋予另一变量 $m = &$p; // 另一变量修改属性值 $m->name = 'Marry'; // 输出源变量 赋值变量访问内部属性的结果 echo $p->name, $m->name; ?>
더 많은 관련 콘텐츠를 보려면 PHP 중국어 웹사이트를 방문하세요: PHP 비디오 튜토리얼
위 내용은 PHP의 객체 값 전송 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!