Larkin - 独解&
何为引用?引用就是某一变量or资源的一个别名。
- $num = 3;
- $num2 = $num;
- $num3 = &$num;
- $num3 = 6;
- echo($num); // 6
- echo($num2); // 3
- echo($num3); // 6
此时我们可以看出$num3与$num所表示的值为同一内存的值。
下面再看一例子:
- $arr = array( "username"=>"小强" );
- $arr2 = &$arr;
- $arr3 = $arr;
- $arr4 = $arr2;
- $arr2["username"] = "小红";
- print_r($arr);
Array ( [username] => 小红 ) - print_r($arr2);
Array ( [username] => 小红 ) - print_r($arr3);
Array ( [username] => 小强 ) - print_r($arr4);
Array ( [username] => 小强 )
没错&就是这么犀利,或许让人很容易误解,下面就让 Larkin 独家讲道:
- $arr = array( "username"=>"小强" ); // 开辟堆内存存放数组,栈$arr存放堆地址
- $arr2 = &$arr; // 栈$arr2存放栈$arr存放的堆地址
- $arr3 = $arr; // 新开辟堆内存存放复制$arr指向的数组,栈$arr3存放新堆地址
- $arr4 = $arr2; // 新开辟堆内存存放复制$arr2指向的数组,栈$arr4存放新堆地址
最后一目了然。下面我们在函数中使用&

我们发现引用传参将会保持一致性,永远不变心。
下面我们来看块级作用域的PHP模仿函数式Javascript闭包模式:

下面模仿JS的构造函数创建对象:

简单创建对象:

对象引用:

内部 private 变量:

思想为基础,技术为支撑,眼界方为高度!

浙公网安备 33010602011771号