php 什么时候传引用,什么时候在PHP中使用传递引用?
以下内容不适用于对象,因为这里已经说明了。如果计划修改传递的值,则通过引用传递数组和标量值将只会节省内存,因为PHP使用了更改时复制(copy-on-change)策略。例如:
# $array will not be copied, because it is not modified.
function foo($array) {
echo $array[0];
}
# $array will be copied, because it is modified.
function bar($array) {
$array[0] += 1;
echo $array[0] + $array[1];
}
# This is how bar shoudl've been implemented in the first place.
function baz($array) {
$temp = $array[0] + 1;
echo $temp + $array[1];
}
# This would also work (passing the array by reference), but has a serious
#side-effect which you may not want, but $array is not copied here.
function foobar(&$array) {
$array[0] += 1;
echo $array[0] + $array[1];
}
总结:
>如果你在一个非常大的数组上工作,并计划在一个函数内修改它,你实际应该使用一个引用,以防止它被复制,这可能严重降低性能,甚至耗尽你的内存限制。>如果它是可以避免的(那是小数组或标量值),我总是使用没有副作用的函数式方法,因为只要你通过引用传递的东西,你永远不能确定传递的变量保持函数调用后,有时可能导致讨厌和难以找到的错误。> IMHO标量值不应该通过引用传递,因为性能影响不能太大,以至于证明代码中透明度的损失。
php 什么时候传引用,什么时候在PHP中使用传递引用?相关推荐
- java的弱引用_深入理解Java中的弱引用
不久之前,我面试了一些求职Java高级开发工程师的应聘者.我常常会面试他们说,"你能给我介绍一些Java中得弱引用吗?",如果面试者这样说,"嗯,是不是垃圾回收有关的?& ...
- Iconfont的引用与在伪元素中的图标引用
在线引用 复制font class的在线链接 <link rel="stylesheet" href="http://at.alicdn.com/t/font_21 ...
- python 引用局部变量_在Python中赋值之前引用的局部变量?
我正在使用PyQt库获取网页的屏幕截图,然后阅读不同URL的CSV文件. 我保留一个变量Feed,每次处理URL时都会增加,因此应该增加到URL的数量. 这是代码: webpage = QWebPag ...
- java中是值传递引用传递_Java是按值传递而不是按引用传递
java中是值传递引用传递 One of the biggest confusion in Java programming language is whether java is Pass by V ...
- 绝对引用计算机,计算机中绝对引用-excel中的绝对引用有什么用?请解释得通俗一点...
Excel中的相对引用和绝对引用是怎么操作的? 对列标(ABCD等)和(123等)绝对引用时要加上"$",引用时不用加任何符号. 相对引用和绝对引用是指将公式向右或复制时列标和行号 ...
- 值传递 引用传递(传地址,传引用)的区别
传值 是把实参的值赋值给行参 那么对行参的修改,不会影响实参的值 传地址 是传值的一种特殊方式,只是他传递的是地址,不是普通的如int 那么 ...
- Python基础day05【函数(函数传参的两种形式、函数形参)、拆包、引用、可变与不可变类型、引用做函数参数注意点】
视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] 目录 0.复习 1.函数传参的两种形式[掌握] 2.函数形参 2.1.缺省参数(默认参数) ...
- java如何做全局缓存_传智播客JNI第七讲 – JNI中的全局引用/局部引用/弱全局引用、缓存jfieldID和jmethodID的两种方式...
讲解JNI中的全局引用/局部引用/弱全局引用.缓存jfieldID和jmethodID的两种方式,并编写两种缓存方式的示例代码. 1.从Java虚拟机创建的对象传到本地C/C++代码时会产生引用,根据 ...
- python参数传递方法_深入理解python中函数传递参数是值传递还是引用传递
python 的 深入理解python中函数传递参数是值传递还是引用传递 目前网络上大部分博客的结论都是这样的: Python不允许程序员选择采用传值还是传 引用.Python参数传递采用的肯定是&q ...
最新文章
- python的基本语句_Python的基本语句
- jsp动作之 getProperty
- 四张图揭秘中国AI人才现状
- UVALive 7324	ASCII Addition (模拟)
- win10偶然无法使用任务栏的问题解决办法
- 5m独享网站服务器,您真的需要独享5m云服务器吗?一文让您了解云服务器带宽计算方法,从此不再花冤枉钱...
- 将一个输入流(InputStream)写入到一个文件中
- 二进制转8421bcd码_中山CVI转CVBS芯视音科技原装
- 通过数据,从键盘录入学生考试科目数,然后依次录入学的每一科分数.使用数组存储学生分数.然后输出总分,平均分,简单易理解
- HTTP详解(1)-工作原理
- Matlab 马尔可夫链预测双色球
- Learun FrameWork V7.0,敏捷开发向导快速配置
- 蛋白质配体复合物-分子动力学模拟Gromacs
- java你好代码_Java 基础——1 向Java世界说你好
- ARCH模型的R语言实现
- android加固!渣本毕业两年经验,终局之战
- 双系统蓝牙键盘的共享配对解决办法的简要步骤:win + arch~IRK、LTK、ERand、EDIV
- 输入一个百分制成绩,要求输出成绩等级A、B、C、D、E,其中90-100分为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。
- 3dmax 毛发、毛头麻绳
- npm‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件
热门文章
- AI领域都在用Python即将被淘汰?网友预测未来的编程语言不会是TA
- 人类历史上有过哪些令人毛骨悚然的实验?
- 施一公获百万科学界大奖!科研大牛如何炼成?
- 网友的有趣发现:冬天里,欧洲古建筑上的雕像都好像“生病了”
- 如果要做小程序创业,哪种方式最赚钱?
- 入门 | 一文看懂卷积神经网络
- 二维码提升对比度文献调研(3)--A Low-Complexity Algorithm for Contrast Enhancement of Digital Images
- linux内核态获取ip地址,Linux内核支持动态获取IP地址
- UnrealEngine4 - 关于UObject被自动GC垃圾回收的巨坑
- LPTSTR、LPCSTR、LPCTSTR、LPSTR的区别