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 变量:
思想为基础,技术为支撑,眼界方为高度!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】博客园的心动:当一群程序员决定开源共建一个真诚相亲平台
【推荐】Flutter适配HarmonyOS 5知识地图,实战解析+高频避坑指南
【推荐】凌霞软件回馈社区,携手博客园推出1Panel与Halo联合终身会员
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步