![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
php
cpyglj123
每天进步一点点
展开
-
读php源码strtr
跟随大神脚步读一读php源码http://www.phppan.com/2010/01/php-strtr-reason/文章只解释了from to的原理从源码中了解strtr arr替换时候会先从key较长的键值替换 php_strtr_array方法最关键的一个参数maxlen 为了最大程度节省内存,emlloc出最大的key。emlloc(maxlen+1)然后循环源字符串当前pos+len...翻译 2018-03-01 23:00:25 · 198 阅读 · 0 评论 -
php yield简单实例
php5.5新支持yield协程的实现并未有特殊的新东西,是在现有的系统层面上利用epoll实现多任务协作完成的php也与时俱进实现了相关的功能yield 实现逐行读文件并使用很少内存实例(记得是会固定申请部分内存给yield使用):<?phpfunction getLines($path){ $f = fopen($path,'r'); while(!feof($f))...转载 2018-03-15 22:41:58 · 778 阅读 · 0 评论 -
php中tsrm理解
#ifdef ZTS直接使用全局变量#elsezend会使用一个global_id 为每个线程的全局变量创建一个副本获取时会根据id-1为索引去get 类似数组的取值 ext_skel会帮我们生成好下面的宏:#ifdef ZTS # define MYEXTENSION_G(v) \ (((zend_myextension_globals*)(...转载 2018-05-03 22:03:05 · 369 阅读 · 0 评论 -
php5中最重要的两个结构zval和hashtable的一点总结
php 支持8种基本的数据类型: 四种标量类型: boolean (布尔型) integer (整型) float (浮点型, 也称作 double) string (字符串) 两种复合类型: array (数组) object (对象) 最后是两种特殊类型: resource (资源) NULL (NULL)无论何种...转载 2018-05-04 20:24:20 · 571 阅读 · 0 评论 -
php内核G宏
EG()、这个宏可以用来访问符号表,函数,资源信息和常量 excuteCG() 用来访问核心全局变量 compilePG() PHP全局变量。我们知道php.ini会映射一个或者多个PHP全局结构。举几个使用这个宏的例子:PG(register_globals), PG(safe_mode), PG(memory_limit)FG() 文件全局变量。大多数文件I/O或相关的全局变量的数据流都塞...翻译 2018-05-04 21:14:27 · 404 阅读 · 0 评论