随笔分类 -  php内核

摘要:/* in_array和array_search进入的函数是一样的,调用php_search_array传的behavior来标识 */ /* {{{ Checks if the given value exists in the array */ PHP_FUNCTION(in_array) { 阅读全文
posted @ 2021-04-09 17:23 zhang-san 阅读(182) 评论(0) 推荐(0) 编辑
摘要:整个PHP环境和Zend环境会涉及多个全局变量,下面是几个比较重要的: php_core_globals core_globals(main/php_globals.h) ==> PG PHP调度sapi和zend engine的整个环境的全局变量存放位置sapi_globals_struct sa 阅读全文
posted @ 2019-03-05 16:38 zhang-san 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2019-03-04 18:12 zhang-san 阅读(176) 评论(0) 推荐(0) 编辑
摘要:Zend 把与 HashTable 有关的 API 分成了好几类以便于我们查找,这些 API 的返回值大多都是常量SUCCESS 或者 FAILURE。 初始化 HashTable 下面在介绍函数原型的时候都使用了 ht,但是我们在编写扩展的时候,一定不要使用这个名称,因为一些 PHP 宏展开后会声 阅读全文
posted @ 2018-10-22 17:38 zhang-san 阅读(333) 评论(0) 推荐(0) 编辑
摘要:PHP是一种解释型的语言,对于用户而言,我们精心的控制内存意味着easier prototyping和更少的崩溃!当我们深入到内核之后,所有的安全防线都已经被越过,最终还是要依赖于真正有责任心的软件工程师来保证系统的稳定运行。 1、线程安全宏定义 在TSRM/TSRM.h文件中有如下定义 #defi 阅读全文
posted @ 2018-10-12 11:39 zhang-san 阅读(233) 评论(0) 推荐(0) 编辑
摘要:简单介绍下,如何对php-fpm进行调试。也可以看官方说明。 首先一点,需要打开debug参数,如果编译的时候没有打开,需要重新编译,编译时添加参数: 设置内核core dump出来的存放路径(注意目录要有权限给php写): 设置core dump出来的文件大小不做限制: 关闭core dump只需 阅读全文
posted @ 2018-09-05 14:54 zhang-san 阅读(371) 评论(0) 推荐(0) 编辑
摘要:GDB(GNU debugger)是GNU开源组织发布的一个强大的UNIX下的程序调试工具。可以使用它通过命令行的方式调试程序。它使你能在程序运行时观察程序的内部结构和内存的使用情况。你也可以使用它分析程序崩溃前的发生了什么,从而找出程序崩溃的原因。相对于windows下的图形界面的VC等调试工具, 阅读全文
posted @ 2018-09-05 11:27 zhang-san 阅读(175) 评论(0) 推荐(0) 编辑
摘要:在脚本中使用扩展的一个方便之处是,人们可以改变自己定义的常量,你可以通过 define() 函数来定义一个常量。在内核中,我们将会使用 REGISTER_*_CONSTANT() 的家族函数来注册常量。 对于自定义的大多数常量来说,你可能希望在程序初始化的时候便定义这些常量: 第一个参数是你要定义的 阅读全文
posted @ 2018-08-16 17:40 zhang-san 阅读(172) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示