随笔分类 -  php底层分析

摘要:变量的赋值与引用 例如:$a=3; $b=$a; 这个时候是否就产生了2个结构体呢? No,如果是的话,这两个结构体的type,value全都一样,很浪费呀,所以在PHP实现的时候并没有copy一个结构体出来,而是$a,$b共用一个结构体。 在传值赋值时,并没有新生结构体,而是共用的。 问题:$a, 阅读全文
posted @ 2016-10-23 19:45 tianye_guazi 阅读(133) 评论(0) 推荐(0)
摘要:2016-10-01 一.变量类型的实现 php源码结构体中的type类型主要是有IS_NULL,IS_RESOURCE,IS_ARRAY,IS_OBJECT,IS_LONG,IS_BOOL,IS_DOUBLE,IS_STRING, 对应的PHP中的8中数据类型,但是奇怪的是,zvalue_valu 阅读全文
posted @ 2016-10-22 21:00 tianye_guazi 阅读(151) 评论(0) 推荐(0)
摘要:2016-9-25 php的底层是用C语言写的,C语言是强类型的语言,而php是弱类型的语言,这是怎么实现的呢? 我们去查询PHP的源码可以发现,在源码的zend文件夹下,打开zend.h文件,找到C语言的结构体struct _zval_struct struct _zval_struct{ zva 阅读全文
posted @ 2016-10-16 22:15 tianye_guazi 阅读(207) 评论(0) 推荐(0)
摘要:2016-9-24 1 代码执行过程 对于C,C++等语言,经过编译器编译成计算机可以识别的语言(二进制)去执行。 对于JAVA语言,编译成class文件(能够持久的存在硬盘上),然后由java虚拟机(jvm)执行,因为jvm是跨平台的,所以java才能跨平台。 对于PHP语言而言,虽然是脚本语言, 阅读全文
posted @ 2016-10-16 22:03 tianye_guazi 阅读(187) 评论(0) 推荐(0)