摘要:
一个php变量存储在一个叫做“zval” 的地方,一个zval 结构包含了什么呢,包含了变量的类型和值,和两个附加信位元信息,第一个位叫做“is_ref”, 它是个布尔值,它标识了这个变量是不是个引用类型,通过这个位元,PHP引擎了解了这个变量是普通类型的变量还是引用类型的变量。因为php允许通过 &操作符让用户获得一个引用。一个zval容器则通过一个叫做引用技术的机制来优化内存的占用。附加的两个位第二个位叫做”refcount”,包含了有多少变量名(这里叫做symbols)指向了这 “一个”zval容器。 php的所有变量符号保存在一个叫做符号表的地方,并且保存每一个变量的周期和范围 阅读全文
posted @ 2012-02-20 12:01
顽童书生
阅读(217)
评论(0)
推荐(0)
摘要:
PHP中的变量指向一个内存对象,可以通过引用赋值让多个对象指向同一个内存对象。unset($var)在操作一个变量时,是销毁了这个变量,而如果这个变量在符号表中的引用技术大于0,这该内存对象不被销毁。如果想直接销毁该对象,可以使用:$var=null,这个赋值语句可以把该内存对象在符号表中的引用计数清零。 阅读全文
posted @ 2012-02-20 11:44
顽童书生
阅读(141)
评论(0)
推荐(0)
摘要:
用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号)。1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。2、$row[’id’]的速度是$row[id]的7倍。3、echo比print快,并且使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接,比如echo$str1,$str2。4、在执行for循环之前确定最大循环数,不要每循环一次都计算 阅读全文
posted @ 2012-02-20 11:28
顽童书生
阅读(136)
评论(0)
推荐(0)
浙公网安备 33010602011771号