以图明志

PHP服务器脚本

理解与使用PHP的&引用符

引用意味着用不同的名字访问同一个变量内容
也就是说,&把$a的地址传给了$b,这样的话这两个变量现在共享一个内存的存储区域,就是说它们的值是一样的。同样的语法可以用在函数中,它返回引用,以及用在 new 运算符中。引用做的第二件事是用引用传递变量。

PHP服务器脚本

理解PHP引用计数和写时复制

符号表的概念
php使用引用计数和写时复制(copy-on-write)来管理内存。引用计算确保在引用不再需要时将内存返回给操作系统,写时复制确保在变量之间复制值时不浪费内存。要理解PHP中的内存管理,必须首先理解符号表(symbol table)的思想,变量有两部分–变量名(如$name)和变量值(如”Fred”)。符号表是一个数组,此数组将变量名映射到其值在内存中的位置。

PHP服务器脚本

PHP引用符&的用法举例

合理使用引用可以使程序更高效
php的引用就是在变量或者函数、对象等前面加上&符号。在PHP 中引用的意思是:不同的名字访问同一个变量内容。与C语言中的指针是有差别的,C语言中的指针里面存储的是变量的内容在内存中存放的地址。

PHP服务器脚本

[专题] PHP内核探索:变量的引用与计数规则

引用、计数与写时复制
在引擎内部,一个PHP的变量是保存在“zval”结构中,此结构包含了变量的类型和值信息。此结构还有另外两个字段信息,一个是"is_ref"(此字段在5.3.2版本中是is_ref__gc),此字段是一个布尔值,用来标识变量是否是一个引用,通过这个字段,PHP引擎能够区分一般的变量和引用变量。

PHP服务器脚本

[专题] PHP内核探索:引用与函数执行

以引用的形式传递参数
一个函数的执行结果要返回给调用者,除了使用return功能,还有一种办法,那就是以引用的形式传递参数,然后在内部修改这个参数的值。前一种方法往往只能返回一个值,如果我们的函数执行结果具有多种数据,便需要把这些数据打包到一个数组、类等复合类型的变量中才能得以实现;但后一种方法相比而言就简单一些了。

PHP服务器脚本

[专题] PHP内核探索:引用计数与写时复制

引用计数是节省内存的一个超棒的模式
对于PHP这种需要同时处理多个请求的程序来说,申请和释放内存的时候应该慎之又慎,一不小心便会酿成大错。另一方面,除了要安全的申请和释放内存外,还应该做到内存的最小化使用,因为它可能要处理每秒钟数以千计的请求,为了提高系统整体的性能,每一次操作都应该只使用最少的内存,对于不必要的相同数据的复制则应该能免则免。

开源项目与工具

[专题] 正则入门:后向引用文本替换

替换电话号码格式
正则表达式的三部曲应该是:1、查找;2、引用匹配了的文本(后向引用);3、有选择地替换文本。需要注意的是:大部分语言的正则表达式实现,在查找中,使用后向引用来代表一个子模式,其语法是“\数字”;而在替换中,其语法是“$数字”。

C/C++编程语言

[专题] 漫谈C指针:参数的引用传递

引用传递与值传递的区别
我们先看Exchg3函数的定义处Exchg3(int &x, int &y)。参数x、y是int的变量,调用时我们可以像值传递(如: Exchg1(a, b); )一样调用函数(如: Exchg3(a, b);)。但是x、y前都有一个取地址符号“&”。有了这个,调用Exchg3时函数会将a、b 分别代替了x、y了,我们称:x、y分别引用了a、b变量。

C/C++编程语言

[专题] 漫谈C指针:参数传递的三道题目

值传递、地址传递与引用传递
我们都知道:C语言中函数参数的传递有:值传递、地址传递、引用传递这三种形式。题一为值传递,题二为地址传递,题三为引用传递。不过,正是这几种参数传递的形式,曾把我给搞得晕头转向。我相信也有很多人与我有同感吧?后面部分请让我逐个地谈谈这三种传递形式。
1 / 1 首页 < Prev 1 Next > 尾页 页码: