Home | 高级前端进阶之路

在现代互联网技术迅猛发展的背景下,前端开发已经从基础的页面构建演变为复杂的工程化开发领域。高级前端开发者不仅需要掌握 HTML、CSS 和 JavaScript 的基础知识,还需深入了解多种编程语言、框架、工具链以及跨领域技术的整合应用,如 Java、PHP 和 C++ 等。高级前端开发的核心是提升工程能力,优化用户体验,并构建高性能的可扩展应用。
站长推荐
关注我 么么哒

高级前端进阶之路 > 新闻中心 >
图文解析PHP对象的赋值操作是“传值”还是“传址”
文章来源:靖柔 时间:2025-01-24
尔们晓得,变量默许老是传值赋值。也便是道,当将1个表白式的值付与1个变量时,全部本初表白式的值被赋值到方针变量。那表示着,当1个变量的值付与别的1个变量时,转变个中1个变量的值,将没有会浸染到别的1个变量。
举个复杂例子:
<?php $a = 'hello world'; $b = $a; $a = 'bey world'; var_dump($a); var_dump($b); ?>
此时的$b = $a,正在内乱存中的存贮年夜致是如许子的:
然则当1个对于象被真例化后,对于象的传送并不是传值,而是传送该对于象的天址。也便是道,没有会复造全部对于象,由于如许干既耗时又耗内乱存。
一样举个复杂例子:
<?php class Person { public $name; public $age; } $a = new Person(); $b = $a; $c = &$a; $a->name = 'gavin'; $a = null; var_dump($b); var_dump($a); var_dump($c);
施行了局:
object(Person)#1 (2) { ["name"]=> string(5) "gavin" ["age"]=> NULL } NULL NULL
下面例子中变量的操纵进程年夜致以下:
$b = $a; $c =& $a;
当把1个对于象真例赋给1个新变量时,新变量会拜候统一个真例。
援用赋值(&)表示着新的变量援用了本初变量,换行之,成为其"一名" 大概 "指背"。窜改新的变量将浸染到本初变量,反之亦然。
$a = null;
大概您会问,既然曲交赋值没有是复造对于象,那怎样才干复造对于象呢?PHP里克隆复造对于象应用clone操纵符:
$f = new Person(); $b = clone $f; //创设1个对于象正本
小结
经由过程原文,尔们一同瓜分了正在PHP中对于象的赋值掌握,传送的是对于象天址,而没有是复造对于象。PHP中能够应用clone掌握符去复造对于象。本领无限,倘使年夜家出现原文有"bug",接待没有吝见教,共时倘若年夜家有其余疑义或者看法,接待一同瓜分交换。尔们协同进修,共通交换,协同前进。