php函数之值传递&引用传递打赏
由于工作忙碌,博客已经断更整一年,最近终于抽出点时间,来分享一些近一年经历中印象深刻的经历。
大概三年前,曾经整理过这样两篇文章《JavaScript函数究竟是值传递还是引用传递?》、《Java方法究竟是值传递还是引用传递?》,不为别的,只因为在工作中有人遇到类似问题,查阅资料后加以整理。巧的是,前阵子做php的同事又造出了相似的bug,不同的是,php并不像前两者一切皆值传递。
在php的世界里,存在传值和传引用两种方式
传值:通过拷贝变量值,传递到函数内部,内部修改不会影响到变量本身;
传引用 :以地址的方式传递变量到函数内部,内部修改可直接影响变量。
举个例子
// 值传递 $var1 = 1; function test1($var2) { $var2 = 2; } test1($var1); echo $var1; // 1 // 引用传递 $var3 = 1; function test2(&$var4) { $var4 = 2; } test2($var3); echo $var3; // 2
两者差异显而易见,但是这似乎不太符合函数式编程的思想,没有返回值,更难以定位问题。对此,大家可以根据需求,用不用引用传递自行判断吧
- 固定链接:https://www.poorren.com/php-function-passed-by-reference-value-transfer
- 文章标签:php,值传递,函数,引用传递
- 扫二维码:php函数之值传递&引用传递
- 版权所有:除"转载分享"分类外,未经注明,均为原创、整理,转载请注明出处。
感谢分享、学习一下、
谢谢博主分享
文章不错支持一下吧,非常喜欢
文章不错支持一下吧