随笔分类 -  php进阶

PHP ZEND执行过程
摘要:1. Zend引擎主要包含两个核心部分:编译、执行: 执行阶段主要用到的数据结构: opcode: php代码编译产生的zend虚拟机可识别的指令,php7有173个opcode,定义在 zend_vm_opcodes.hPHP中的所有语法实现都是由这些opcode组成的。 struct _zend 阅读全文

posted @ 2022-02-09 10:46 1450811640 阅读(165) 评论(0) 推荐(0) 编辑

PHP底层数组如何实现元素的有序性
摘要:PHP 数组的基本实现 散列表主要由两部分组成:存储元素数组、散列函数。散列表的基本实现前面已经探讨过,PHP 中的数组除了具备散列表的基本特点之外,还有一个特别的地方,那就是它是有序的(与Java中的HashMap的无序有所不同):数组中各元素的顺序和插入顺序一致。这个是怎么实现的呢? 为了实现 阅读全文

posted @ 2022-01-05 14:48 1450811640 阅读(103) 评论(0) 推荐(0) 编辑

PHP之多线程
摘要:前言 前些天帮同事查一个问题,第一次接触到了 PHP 的多线程,原以为 PHP 普遍都是单线程模型,并不适合多线程领域,花些时间翻了几个多线程的项目源码之后,发现 PHP 的多线程也颇有可取之处,活用起来,用来解决某些问题竟然非常适合。 于是找了几篇文章看了下 PHP 多线程 TSRM 机制的实现, 阅读全文

posted @ 2021-12-26 19:55 1450811640 阅读(648) 评论(0) 推荐(0) 编辑

php-fpm优化
摘要:前言: 1.少安装PHP模块, 费内存 2.调高linux内核打开文件数量,可以使用这些命令(必须是root帐号)(我是修改/etc/rc.local,加入ulimit -SHn 51200的) echo `ulimit -HSn 65536` >> /etc/profile echo `ulimi 阅读全文

posted @ 2021-12-13 16:06 1450811640 阅读(366) 评论(0) 推荐(0) 编辑

php自动加载机制
摘要:类的载入共经历了三个阶段 第一阶段是面向过程式的做法,整个项目里到处都是include或require。 问题:难看,不易维护。 . 第二阶段是魔术方法__autoload,当new一个类的时候,如果类不存在,则会调用此方法传入类名。 如今很多框架都已经采用PSR-4规范化编程示例: 也就是说 命名 阅读全文

posted @ 2021-12-04 20:41 1450811640 阅读(206) 评论(0) 推荐(0) 编辑

php底层数据结构-链表
摘要:Zend引擎中实现了很多基本的数据结构,这些接口贯穿PHP和Zend引擎的始末, 这些数据结构以及相应的操作接口都可以作为通用的接口来使用。本小节再简单描述一下 在Zend引擎中HashTable的使用非常频繁,这得益于他良好的查找性能,如果读者看过 前一小节会知道哈希表会预先分配内容以提高性能,而 阅读全文

posted @ 2021-12-04 16:51 1450811640 阅读(83) 评论(0) 推荐(0) 编辑

PHP底层数据存储结构-哈希表
摘要:上一节已经介绍了php数据的存储结构,下面我们看看PHP中的哈希表是怎么实现的。 PHP的哈希实现 PHP内核中的哈希表是十分重要的数据结构,PHP的大部分的语言特性都是基于哈希表实现的, 例如:变量的作用域、函数表、类的属性、方法等,Zend引擎内部的很多数据都是保存在哈希表中的。 数据结构及说明 阅读全文

posted @ 2021-12-04 16:47 1450811640 阅读(414) 评论(0) 推荐(0) 编辑

PHP底层变量存储结构
摘要:今天来复习一下php的底层数据存储结构 PHP之所以成为一个简单而强大的语言,很大一部分的原因是它拥有弱类型的变量。 但是有些时候这也是一把双刃剑,使用不当也会带来一些问题。就像仪器一样,越是功能强大, 出现错误的可能性也就越大。在官方的PHP实现内部,所有变量使用同一种数据结构(zval)来保存, 阅读全文

posted @ 2021-12-04 16:29 1450811640 阅读(237) 评论(0) 推荐(0) 编辑

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

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