PHP之值傳遞與引用傳遞

2021-08-21 08:55:38 字數 1351 閱讀 6567

廢話不多說,直接上**(值傳遞與引用傳遞的區別我在這就不介紹了,不懂得的小夥伴直接**理解,還是不懂 -> 自行度娘):

普通變數: 值傳遞

<?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 ...