这段时间坚持每天阅读一些PHP的源代码,自己总结出了那么一些心得体会,记录下来做个标记。
首先自己的C语言水平是半桶水的,确切的应该可以说是没有系统地学过C语言,因为自己是化工出身所以大学里落下了太多的计算机基础理论课,可以说大学里只学了一门语言,就是PHP,哈,有点扯远了。
研读PHP的源代码完全是源于自己的好奇心,很想知道PHP的内部原理,函数的内部实现。阅读代码的过程中学习了很多的C语言基础知识,比如#define的详细用法,以前只知道是用来定义一个常量,typedef的详细用法,比如这样的定义
typedef int (*apply_func_t)(void *pDest TSRMLS_DC);
在应用的时候这样写:
ZEND_API void zend_hash_apply(HashTable *ht, apply_func_t apply_func TSRMLS_DC)
不过现在还不太明白这样展开之后会是一种什么形式。
指针的一些常识,比如指针的长度是固定的,与指向的类型没有关系。struct结构体的一些知识,比如在一个struct里面再声明一个指向同类型的结构,在结构里面不可以声明函数但可以声明一个函数指针等,这些对于我来说都是新知识。
对PHP源代码的印象的一些印象,有很多的宏定义,有非常多的结构体。比如宏定义:CG, EG, PG, SG等就足以让人头疼,要记住这些宏定义和结构体没有别的办法,不断地查看,忘了就去查看它的定义,再加上一些记忆技巧。因为这些宏定义和结构体的声明分 布在各个文件里面,我的做法是把这些常用的宏定义,结构体定义全都拷到一个文件里面,忘了的时候通过查找这个文件很快很多。
这几天正在研究PHP的SPL的内部实现,源代码在ext/spl目录下,过几天再把笔记放上来.
继续睡觉,早上才睡了不到三个小时就醒来。昨晚和两个同事去了双榆树的华星电影院看了夜间剧场,四部电影,地心历险记,007量子危机,味道男女,还有最 后一部忘了叫啥名,可惜去到的时候第一部已经放完。到早上6点多出来后又去了麦当劳吃了早点,在那斗地主了3个多小时。。。
首先自己的C语言水平是半桶水的,确切的应该可以说是没有系统地学过C语言,因为自己是化工出身所以大学里落下了太多的计算机基础理论课,可以说大学里只学了一门语言,就是PHP,哈,有点扯远了。
研读PHP的源代码完全是源于自己的好奇心,很想知道PHP的内部原理,函数的内部实现。阅读代码的过程中学习了很多的C语言基础知识,比如#define的详细用法,以前只知道是用来定义一个常量,typedef的详细用法,比如这样的定义
typedef int (*apply_func_t)(void *pDest TSRMLS_DC);
在应用的时候这样写:
ZEND_API void zend_hash_apply(HashTable *ht, apply_func_t apply_func TSRMLS_DC)
不过现在还不太明白这样展开之后会是一种什么形式。
指针的一些常识,比如指针的长度是固定的,与指向的类型没有关系。struct结构体的一些知识,比如在一个struct里面再声明一个指向同类型的结构,在结构里面不可以声明函数但可以声明一个函数指针等,这些对于我来说都是新知识。
对PHP源代码的印象的一些印象,有很多的宏定义,有非常多的结构体。比如宏定义:CG, EG, PG, SG等就足以让人头疼,要记住这些宏定义和结构体没有别的办法,不断地查看,忘了就去查看它的定义,再加上一些记忆技巧。因为这些宏定义和结构体的声明分 布在各个文件里面,我的做法是把这些常用的宏定义,结构体定义全都拷到一个文件里面,忘了的时候通过查找这个文件很快很多。
这几天正在研究PHP的SPL的内部实现,源代码在ext/spl目录下,过几天再把笔记放上来.
继续睡觉,早上才睡了不到三个小时就醒来。昨晚和两个同事去了双榆树的华星电影院看了夜间剧场,四部电影,地心历险记,007量子危机,味道男女,还有最 后一部忘了叫啥名,可惜去到的时候第一部已经放完。到早上6点多出来后又去了麦当劳吃了早点,在那斗地主了3个多小时。。。