PHP
PHP底层知识的学习笔记
gripex
I don't know. I don't know.
展开
-
字符串(zend_string)
_zend_string typedef struct _zend_string zend_string; struct _zend_string { zend_refecounted_h gc; // 用于垃圾回收 zend_ulong h; // 空间换时间,用于做hash运算,之后用在数组中 /* len + val[1], 增加存储长度, 组成二进制安全的数组 */ size_t len; // 长度 char val[1]; // 字符数原创 2020-09-05 00:40:21 · 403 阅读 · 0 评论 -
zavl的基本结构
_zval_struct // 16字节zval struct _zval_struct { zend_value value; // 8个字节 union u1; // 4字节, u1,u2内存对齐,共8字节 union u2; // 4字节 } zend_value 存储变量 // 变量赋值时,PHP底层自动解析变量(做类型抓换)存储为合适类型 /* 8字节 zend_value 可以表示PHP中任意一个变量 */ type union_zend_value { ze原创 2020-09-05 00:06:52 · 311 阅读 · 0 评论 -
PHP7中新的语法特性
PHP7语法新特性 太空船操作符 /* 用于比较两个表达时, 在小于,大于,等于时分别返回-1, 0, 1*/ echo 1 <=> 2; // -1 echo 1 <=> 1; // 0 echo 2 <=> 1; // 1 类型声明 /* 开启严格模式 */ delcare(strict_types=1); function test_decl...原创 2020-01-02 15:28:46 · 398 阅读 · 1 评论 -
PHP7性能基准测试,与PHP5的对比
PHP7性能基准测试,与PHP5性能的对比 对比PHP版本选择PHP7.3.11 与 PHP5.6.40, 分别运行php5.6.4源码包Zend目录中的bench.php与micro_bench.php bench.php php7.3.11耗时0.435, php5.6.40耗时1.285 14:15 debian@debian:Zend $/usr/local/php7.3.11/...原创 2020-01-02 14:22:59 · 509 阅读 · 0 评论 -
PHP7底层剖析
学习内容 PHP7新特性 PHP7性能基准测试,与PHP5性能的对比 PHP7中新的语法特性 基础变量与内存管理 zavl的基本结构 字符串(zend_string) 引用类型(zend_reference) 数组类型(zend_array/HashTable) small/large/huge内存 内存对齐 内存类型标记 PHP运行的生命周期 CLI模式 FPM模式 Fas...原创 2020-01-02 10:52:16 · 211 阅读 · 0 评论