php 陣列 類物件 值傳遞 引用傳遞 區別

2022-04-12 04:24:40 字數 928 閱讀 8099

一般的資料型別(int, float, bool)不做這方面的解說了

這裡詳細介紹一下陣列和的類的物件作為引數進行值傳遞的區別

陣列值傳遞

例項**:

<?php

function

main()

function change($cc

)main();

?>output:

array(2)

陣列引用傳遞

<?php

function

main()

function change(&$cc

)main();

?>outpout:

array(1)

類物件值傳遞

<?php

class

ppfunction

main()

function change($p

)main();

?>output:

object(pp)#

1 (1)

類物件引用傳遞

<?php

class

ppfunction

main()

function change(&$p

)main();

?>

object(pp)#

1 (1)

總結:php中,陣列是當乙個普通變數,值傳遞是要乙個實參的乙個拷貝副本,跟實參無關,引用傳遞後可以改變實參的值

而類的物件是無論值傳遞和引用傳遞都是引用傳遞,是對物件的引用,都會改變實參的值

php陣列是值傳遞,物件是引用傳遞

例項 1 陣列值傳遞 function main function change cc main output array 2 2 陣列引用傳遞 function main function change cc main outpout array 1 3 類物件值傳遞 class ppfuncti...

php值和物件的值傳遞和引用傳遞

因為最近發現了物件用引用傳遞的時候,會有些微秒的變化,上 看看 v1 1 v2 v1 echo 變數初始狀態 值傳遞 echo v1的值 v1.v2的值是 v2 echo v2 2 echo v2賦值為2後的狀態 echo v1的值 v1.v2的值是 v2 echo v1 3 echo v1賦值為3...

php引用傳遞和值傳遞

主要是實參和形參的相互影響性。引用傳遞 形參的改變會影響實參 值傳遞 賦值,不相互影響 引數引用傳遞 pams1 1 function ssr params 這裡的引數的沒有 pams2 ssr pams1 echo 1 pams1 1 echo echo 2 pams2 4 echo pams1 ...