Php知识点
2021-05-29 14:39:15 0 举报
Php知识点
作者其他创作
大纲/内容
null
1. 启动zend引擎,加载扩展模块。(nginx模式下,只启动php-fpm执行一次)2.进行php文件语法分析,语义分析生成语法树。3.zend将语法树编译成opcode4.zend执行opcode返回结果
php魔术方法,魔术常量
5.2之前没办法解决就会出现内存泄漏在php5.3的GC中,针对的垃圾做了如下说明: 1:如果一个zval的refcount增加,那么此zval还在使用,肯定不是垃圾,不会进入缓冲区 2:如果一个zval的refcount减少到0, 那么zval会被立即释放掉,不属于GC要处理的垃圾对象,不会进入缓冲区。 3:如果一个zval的refcount减少之后大于0,那么此zval还不能被释放,此zval可能成为一个垃圾,将其放入缓冲区。PHP5.3中的GC针对的就是这种zval进行的处理。
zval {typevalueisrefrefcount}
nginx
1、PHP5标量数据类型会计数,PHP7标量数据类型不再计数,不需要单独分配内存2、PHP7的zval 需要的内存不再是单独从堆上分配,不再自己存储引用计数。3、PHP7的复杂数据类型(比如数组和对象)的引用计数由其自身来存储。
php版本的差异
存储结构
cli
cgi(公共网关接口,实现脚本语言和http的交互)fastcgi(一个进程可以处理多个请求)phpcgi(需要进行php初始化执行过程,一个进程可以处理请求,一个连接创建一个进程)phpfpm(不会每个连接都创建一个进程,一个进程处理多个连接的请求)
_get()_set()_call()构造析构_FILE__DIR__CLASS__NAMESPACE_
循环引用问题
特点:php5和php7的垃圾回收机制都是利用引用计数
GC算法
5,71.变量声明2.函数返回声明3.比较运算符4.致命错误改为异常5.7优化了内存,函数效率更高
php5 7 不同点
Php垃圾回收机制
Php执行过程
0 条评论
下一页