因為最近發現了物件用引用傳遞的時候,會有些微秒的變化,上**看看
$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語言的指標了,感覺差不多。打個比方,我有一橦房子,我給你一把鑰匙,我們二個都...