廢話不多說,直接上**(值傳遞與引用傳遞的區別我在這就不介紹了,不懂得的小夥伴直接**理解,還是不懂 -> 自行度娘):
普通變數: 值傳遞
<?php
$a = 6;
echo
$a; // 6
set_value_common($a); // 10
echo
$a; // 6
set_value_reference($a); // 10
echo
$a; // 10
// 值傳遞
function
set_value_common
($var)
// 引用傳遞
function
set_value_reference
(&$var)
?>
陣列:之前誤以為php跟c一樣陣列是引用傳遞,結果做專案時輸出結果不一致,才知道 php 的陣列跟普通變數一樣是值傳遞
<?php
$arr = [1, 2, 3, 4, 5];
var_dump($arr); // array(5)
echo"";
set_arr_common($arr);
var_dump($arr); //array(5)
echo"";
set_arr_reference($arr);
var_dump($arr); // array(3)
echo"";
// 值傳遞
function
set_arr_common
($arr)
// 引用傳遞
function
set_arr_reference
(&$arr)
?>
物件: 引用傳遞
<?php
class
car
$obj = new car();
var_dump($obj); //object(car)#1 (1)
echo"";
set_arr_common($obj);
var_dump($obj); //object(car)#1 (1)
echo"";
function
set_arr_common
($obj)
?>
引用傳遞與值傳遞
看 define n 10000 define n 10000 ini set memory limit 1g function microtime float function printarray0 arr 引用傳遞 function printarray1 arr 值傳遞 for i 0 i ...
值傳遞與引用傳遞
分析 形參是實參的拷貝,改變形參的值並不會影響外部實參的值。由於x 1 是在test方法棧裡面執行的,所以只會改變test方法棧裡面的x值,而不會改變main方法棧裡面的x值 形參的改變不會影響實參 引用傳遞,傳遞的是實際引數的位址.傳遞的是值的引用,也就是說傳遞前和傳遞後都指向同乙個引用 同乙個記...
值傳遞與引用傳遞
值傳遞,只是傳遞副本,而引用傳遞,是傳遞乙個位址 using system using system.collections.generic using system.linq using system.text v console.writeline 引用傳遞,結果為!r static void ...