PHP内核探索之变量(6)- 后续内核探索系列大纲备忘

原文:PHP内核探索之变量(6)- 后续内核探索系列大纲备忘

年前因为工作比较饱和,现在又忙着换工作的事情,基本停止了对博文的更新。后续的博文,还是慢慢补上吧。

为了不至于过于发散,先搞个未成形的大纲,如下:

  1.   PHP内核探索之变量  不平凡的字符串
  2.   PHP内核探索之变量  变量的生命周期、类型转换
  3.   PHP内核探索之变量  变量的循环(foreach,其实放到Zend部分更加合理一些)
  4.   PHP内核探索之SAPI  (比较疑惑,为什么这么靠后? )
  5.   PHP内核探索之函数  (函数实现原理、用户函数和系统函数,性能)
  6.   PHP内核探索之扩展  (扩展的生命周期,扩展的基本流程、开发骨架、简单的扩展)
  7.   PHP内核探索之opcode (opcode的基本原理,如何查看opcode)
  8.   php内核探索之内存管理 (内存管理模型、API, zend MM,垃圾回收GC)
  9.   php内核探索之面向对象
  10.   PHP内核探索之语言引擎ZendEngine/Hiphop/HHVM(后两个为非官方实现)

对于每一个部分,可能会花费1-2篇的篇幅来记录相应的学习过程,例如扩展的开发部分,由于东西比较宽泛,用一篇的话会比较冗长,所以可能会拆分成2篇左右的样子。

同样,由于时间紧急,文中难免会有错误,对于该系列中的任何错误,欢迎交流指出。

时间: 2024-09-29 22:56:01

PHP内核探索之变量(6)- 后续内核探索系列大纲备忘的相关文章

PHP内核探索之变量(3)- hash table

原文:PHP内核探索之变量(3)- hash table        在PHP中,除了zval, 另一个比较重要的数据结构非hash table莫属,例如我们最常见的数组,在底层便是hash table.除了数组,在线程安全(TSRM).GC.资源管理.Global变量.ini配置管理中,几乎都有Hash table的踪迹(上一次我们也提到,符号表也是使用Hash table实现的).那么,在PHP中,这种数据有什么特殊之处,结构是怎么实现的? 带着这些问题,我们开始本次的内核探索之旅.   

PHP内核探索之变量- 不平凡的字符串

切,一个字符串有什么好研究的.   别这么说,看过<平凡的世界>么,平凡的字符串也可以有不平凡的故事.试看:   (1)       在C语言中,strlen计算字符串的时间复杂度是?PHP中呢?   (2)       在PHP中,怎样处理多字节字符串?PHP对unicode的支持如何?   同样是字符串,为什么c语言与C++/PHP/Java的均不相同?   数据结构决定算法,这句话一点不假.   那么我们今天就来掰一掰,PHP中的字符串结构,以及相关字符串函数的实现.   一.  字符串

PHP内核探索之变量(4)- 数组操作

原文:PHP内核探索之变量(4)- 数组操作 上一节(PHP内核探索之变量(3)- hash table),我们已经知道,数组在PHP的底层实际上是HashTable(链接法解决冲突),本文将对最常用的函数系列-数组操作的相关函数做进一步的跟踪. 本文主要内容: PHP中提供的数组操作函数 数组操作函数的实现 结语参考文献 一.PHP中提供的数组操作函数 可以说,数组是PHP中使用最广泛的数据结构之一,正因如此,PHP为开发者提供了丰富的数组操作函数(参见http://cn2.php.net/m

PHP内核探索之变量(5)- session的基本原理

原文:PHP内核探索之变量(5)- session的基本原理 这次说说session. session可以说是当前互联网提到的最多的名词之一了.它的含义很宽泛,可以指任何一次完整的事务交互(会话):如发送一次HTTP请求并接受响应,执行一条SQL语句都可以看做一次Session.如无特殊说明,本文中提到的Session单指HTTP会话. 本文是PHP内核探索的第五篇,主要包含如下几个方面的内容: 背景知识和session基础 PHP中session的原理 参考文献 一.背景知识,session基

PHP内核探索之变量(1)Zval

原文:PHP内核探索之变量(1)Zval 作为数据的容器,我们常常需要跟变量打交道,不管这个变量是数字.数组.字符串.对象还是其他,因而可以说变量是构成语言的不可或缺的基础.本文是PHP内核探索之变量的第一篇,主要介绍zval的基本知识,包括如下几个方面的内容: Zval的基本结构 查看zval的方法:debug_zval_dump和xdebug Zval的原理,COW等 由于写作仓促,难免会有错误,欢迎指出. 一.Zval的基本结构 Zval是PHP中最重要的数据结构之一(另一个比较重要的数据

PHP内核探索之变量(2)-理解引用

原文:PHP内核探索之变量(2)-理解引用 本文主要内容: 引论 符号表与zval 引用原理 回到最初的问题 一.引论 很久之前写了一篇关于引用的文章,当时写的寥寥草草,很多原理都没有说清楚.最近在翻阅Derick Rethans(home: http://derickrethans.nl/ Github: https://github.com/derickr)大牛之前做的报告时,发现了一篇讲解PHP引用机制的文章,也就是这个PDF.文中从zval和符号表的角度讲解了引用计数.引用传参.引用返回

PHP内核学习教程之php opcode内核实现_php实例

opcode是计算机指令中的一部分,用于指定要执行的操作, 指令的格式和规范由处理器的指令规范指定. 除了指令本身以外通常还有指令所需要的操作数,可能有的指令不需要显式的操作数. 这些操作数可能是寄存器中的值,堆栈中的值,某块内存的值或者IO端口中的值等等. 通常opcode还有另一种称谓:字节码(byte codes). 例如Java虚拟机(JVM),.NET的通用中间语言(CIL: Common Intermeditate Language)等等. 1. Opcode简介 opcode是计算

十天学Linux内核之第八天---构建Linux内核

原文:十天学Linux内核之第八天---构建Linux内核 今天是腊八节,说好的女票要给我做的腊八粥就这样泡汤了,好伤心,好心酸呀,看来代码写久了真的是惹人烦滴,所以告诫各位技术男敲醒警钟,不要想我看齐,不然就只能和代码为伴了的~~话说没了腊八粥但还是有代码,还有各位读者的支持呀,所以得继续写下去,静下心来,完成Linux内核的学习,坚持,加油~ 到目前为止,我们已经认识了Linux内核子系统,也探究了系统的初始化过程,并且深入探索了start_kernel()函数,同样,了解内核映像的创建也是

5-3 Linux内核计时、延时函数与内核定时器【转】

转自:http://www.xuebuyuan.com/510594.html 5-3 Linux内核计时.延时函数与内核定时器  计时 1. 内核时钟 1.1   内核通过定时器(timer)中断来跟踪时间流 1.2   硬件定时器以周期性的间隔产生时间中断,这个间隔(即频率)由内核根据HZ来确定,HZ是一个与体系结构无关的常数. 1.3   这个时间间隔通常取1ms到10ms. 2. jiffies计算器 2.1每次当定时器中断发生时,内核内部通过一个64位的变量jiffies_64做加一计