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

2021-07-24 23:22:48 字數 2275 閱讀 4681

因為最近發現了物件用引用傳遞的時候,會有些微秒的變化,上**看看

$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後的狀態';

echo '$v1的值:'.$v1.',$v2的值是:'.$v2;

echo "

";unset($v1);

echo '$v1銷毀後的狀態';

echo '$v2的值是:'.$v2;

echo "

";echo "";

$v3 = 1;

$v4 = &$v3;

echo '變數初始狀態(引用傳遞)';

echo '$v3的值:'.$v3.',$v4的值是:'.$v4;

echo "

";$v3 = 2;

echo '$v3賦值為2後的狀態';

echo '$v3的值:'.$v3.',$v4的值是:'.$v4;

echo "

";unset($v3);

echo '$v3銷毀後的狀態';

echo '$v4的值是:'.$v4;

echo "

";echo "";

class test

$t1 = new test();

$t2 = $t1;

echo '物件初始狀態(值傳遞)';

echo "

";echo '物件$t1: $t1->v1的值:'.$t1->v1.',$t1->v2的值是:'.$t1->v2;

echo "

";echo '物件$t2: $t2->v1的值:'.$t2->v1.',$t2->v2的值是:'.$t2->v2;

echo "

";$t1->v1 = 2;

$t1->v2 = 3;

echo '$t1物件改變屬性值後';

echo "

";echo '物件$t1: $t1->v1的值:'.$t1->v1.',$t1->v2的值是:'.$t1->v2;

echo "

";echo '物件$t2: $t2->v1的值:'.$t2->v1.',$t2->v2的值是:'.$t2->v2;

echo "

";$t1 = 123;

echo '$t1改變值型別後';

echo "

";echo '物件$t2: $t2->v1的值:'.$t2->v1.',$t2->v2的值是:'.$t2->v2;

echo "";

$t3 = new test();

$t4 = &$t3;

echo '物件初始狀態(引用傳遞)';

echo "

";echo '物件$t3: $t3->v1的值:'.$t3->v1.',$t3->v2的值是:'.$t3->v2;

echo "

";echo '物件$t4: $t4->v1的值:'.$t4->v1.',$t4->v2的值是:'.$t4->v2;

echo "

";$t3->v1 = 2;

$t3->v2 = 3;

echo '$t1物件改變屬性值後';

echo "

";echo '物件$t3: $t3->v1的值:'.$t3->v1.',$t3->v2的值是:'.$t3->v2;

echo "

";echo '物件$t4: $t4->v1的值:'.$t4->v1.',$t4->v2的值是:'.$t4->v2;

echo "

";$t3 = 123;

echo '$t1物件改變屬性值後';

echo "

";echo '物件$t4: $t4->v1的值:'.$t4->v1.',$t4->v2的值是:'.$t4->v2;

echo "

";

執行結果如下 :

php引用傳遞和值傳遞

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

php 值傳遞和引用傳遞

a 3 b 4 引用傳遞 加 賦值後 全域性變數隨之改變稱為 引用傳遞 引用傳遞 不加 賦值後 區域性方法裡面變數會生成乙個值代替他 我們簡稱為 tmp 在方法裡面運算 然後返回給這個值 所以真實的數值沒有改變 function change c change a echo a echo 但是物件本...

PHP的傳值與引用,php傳值和傳引用區別

php傳值 在函式範圍內,改變變數值得大小,都不不會影響到函式外邊的變數值。testa 1 定義變數a testb 2 定義變數b testb testa 變數a賦值給變數b echo testb 顯示為1 傳引用 類似於c語言的指標了,感覺差不多。打個比方,我有一橦房子,我給你一把鑰匙,我們二個都...