
深入php
文章平均质量分 89
深入探究php,php内核,php底层应用
时而宁靜
空谈误国,实干兴邦
展开
-
php底层内核回顾总结
前言:去年曾对php底层做过研究,也没有系统的用自己的话总结一下,简单明了,故特此发文,如有不对大家指正哈。具体的大家可以回顾专栏,里边有详细介绍主要内容:为什么是弱类型?php的生命周期是如何一个流程,变量的世纪存储形式与分离改变,内存开辟与新垃圾回收命名空间的应用以及php为什么是弱类型一。如何理解php是弱类型语言1.从变量角度:在原创 2017-06-13 20:23:49 · 1668 阅读 · 3 评论 -
大多PHP开发人员会犯错的运算
一.前言 最近老碰到一些因为php做数学运算,发生不痛不痒的小问题。 千里之堤,溃于蚁穴。加个类型转换,so easy解决了,我觉得不能就这么放过去。 尤其是用php做财务运算或者写接口运算与强语言对接的同学,可得多加注意。 事情不大,细节决定成败,仔细研究后门道确实挺多,自己也好好补了一课。 你真的知道php是弱类型语言吗?原创 2017-02-08 18:04:47 · 2007 阅读 · 1 评论 -
PHP内核的存储机制(分离/改变)
前言:大部分程序员看博客可能不是太喜欢看汉字比较多的文章哈,但本文确实介绍以汉字为主描述,耐心看完,对大部分人来说肯定会有收获!或许你知道,或许你不知道,PHP是一个弱类型,动态的脚本语言。所谓弱类型,就是说PHP并不严格验证变量类型(严格来讲,PHP是一个中强类型语言),在申明一个变量的时候,并不需要显示指明它保存的数据的类型。比如:$a = 1; (整形) $a ="1";原创 2016-04-04 21:14:15 · 10657 阅读 · 0 评论 -
PHP内核--源码安装与介绍
获取PHP源码为了学习PHP的实现,首先需要下载PHP的源代码。下载源码首选是去PHP官方网站http://php.net/downloads.php下载, 如果你喜欢使用svn/git等版本控制软件,也可以使用svn/git来获取最新的源代码。# git 官方地址git clone https://git.php.net/repository/php-src.git# 也可以原创 2016-10-21 00:03:48 · 7516 阅读 · 0 评论 -
PHP内核--生命周期
了解PHP生命周期之前,先了解一下apache是怎么和php关联起来的吧~1.Apache运行机制剖析-----------------------------总体示意图如下:Apache Hook机制 Apache的Hook机制是指:Apache 允许模块(包括内部模块和外部模块,例如mo原创 2016-10-21 00:04:06 · 8274 阅读 · 0 评论 -
PHP内核--Zend引擎
在前面的章节介绍了PHP的生命周期,PHP的SAPI,SAPI处于PHP整个架构较上层,而真正脚本的执行主要由Zend引擎来完成, 这一小节我们介绍PHP脚本的执行。目前编程语言可以分为两大类:第一类是像C/C++, .NET, Java之类的编译型语言, 它们的共性是: 运行之前必须对源代码进行编译,然后运行编译后的目标文件。第二类比如:PHP, Javascript, Ru原创 2016-10-21 00:04:19 · 5204 阅读 · 0 评论 -
PHP内核--静态变量,常量,魔术常量原理
我们都知道,静态变量是在PHP脚本载入时就加载了,即1.不用new其对象就可以直接调用,2.并且静态变量存储在公共区域同一类的多个对象共同操作一个静态变量,3.静态变量只有在脚本结束后内存才会释放,针对这三个问题,想问一句,为什么?下边展开叙述先看其结构,更好进行分析了解。静态变量是存储在函数结构体_zend_execute_data 中的,而这个结构体中,有两个很原创 2016-10-21 00:04:29 · 2143 阅读 · 0 评论 -
PHP内核--类和面向对象
在最开始接触PHP的时候,都是面向过程的方法来自己做一些很简单的网站在玩,写PHP代码就是堆砌,拓展性与维护性太差改个逻辑极不方便。后来发现PHP是支持面向对象的,忽然觉得自己那是后还真是年轻,真是孤陋寡闻呀,毕竟PHP是用C来实现,也不足为奇。前言:从我们接触PHP开始,我们最先遇到的是函数:数组操作函数,字符串操作函数,文件操作函数等等。 这些函数是我们使用PH原创 2016-10-23 21:50:19 · 1500 阅读 · 0 评论 -
PHP内核--命名空间
在维基百科中,对命名空间的定义是: 命名空间(英语:Namespace)表示标识符(identifier)的上下文(context)。一个标识符可在多个命名空间中定义, 它在不同命名空间中的含义是互不相干的。在编程语言中,命名空间是一种特殊的作用域,它包含了处于该作用域内的标识符, 且本身也用一个标识符来表示,这样便将一系列在逻辑上相关的标识符用一个标识符组织了起来。 函数和类的作用域可被视作原创 2016-10-23 22:34:30 · 1368 阅读 · 0 评论 -
PHP内核--探究内存管理与缓存机制
PHP的内存管理可以被看作是分层(hierarchical)的。 它分为三层:存储层(storage)、堆层(heap)和接口层(emalloc/efree)。 存储层通过 malloc()、mmap() 等函数向系统真正的申请内存,并通过 free() 函数释放所申请的内存。 存储层通常申请的内存块都比较大,这里申请的内存大并不是指storage层结构所需要的原创 2016-10-23 23:39:50 · 4853 阅读 · 0 评论 -
PHP内核--内存泄漏与新垃圾回收机制
垃圾回收机制是一种动态存储分配方案。它会自动释放程序不再需要的已分配的内存块。 自动回收内存的过程叫垃圾收集。垃圾回收机制可以让程序员不必过分关心程序内存分配,从而将更多的精力投入到业务逻辑。PHP也在语言层实现了内存的动态管理,这在前面的章节中已经有了详细的说明, 内存的动态管理将开发人员从繁琐的内存管理中解救出来。与此配套,PHP也提供了语言层的垃圾回收机制, 让程序员不必过分关心程序原创 2016-10-24 00:17:48 · 2397 阅读 · 0 评论 -
PHP内核--浅谈PHP灵魂HashTble
一。前言HashTable是PHP的灵魂,因为在Zend引擎中 大量的使用了HashTable,如变量表,常量表,函数表等,这些都是 适应HashTable保存的,另外,PHP的数组也是通过使用HashTble实现的,所以,了解PHP的HashTable才能真正了解PHP。为了方便阅读,这里列举一下HashTable实现中出现的基本概念。 哈希表是一种通过哈希函数,将特定的键映射到原创 2016-10-24 00:42:53 · 2382 阅读 · 0 评论