PHP中的赋值-引用or传值?

直接上代码:

<?php
$num1 = 1;
$num2 = $num1;
$num1 = 2;
echo $num2 . "
";

$arr1 = array(1, 2); 
$arr2 = $arr1;
$arr1[0] = 3;
print_r($arr2);

$obj1 = new StdClass();
$obj2 = $obj1;
$obj1->val = 1;
print_r($obj2);

上述代码的输出结果为:

// number
1

// Array
Array
(
    [0] => 1
    [1] => 2
)

// Object
stdClass Object
(
    [val] => 1
)

由此可以看出,将一个变量赋值给另外一个变量,如果是对象,那么就是引用赋值;如果非对象(数值、字符串、数组等),就是重新分配内存空间。

原文地址:https://www.cnblogs.com/zhouchangju/p/3187670.html