TIPI项目是一个自发项目, 项目主要关注PHP的内部实现, 以及PHP相关的方方面面, 该项目包括《深入理解PHP内核》这本书,以及一些相关的PHP项目,例如一些PHP扩展及研究项目.
你可以联系以下作者
reeze http://reeze.cn reeze.xia@gmail.com
er http://www.zhangabc.com er@zhangabc.com
phppan http://www.phppan.com/ phppan.p@gmail.com
HonestQiao http://www.wapm.cn/ honestqiao@gmail.com
mengkang https://mengkang.net i@zhoumengkang.com
或者发给所有组员: team@php-internals.com
贡献者
感谢这些贡献者:https://github.com/reeze/tipi/contributors
你可以联系以下作者
reeze http://reeze.cn reeze.xia@gmail.com
er http://www.zhangabc.com er@zhangabc.com
phppan http://www.phppan.com/ phppan.p@gmail.com
HonestQiao http://www.wapm.cn/ honestqiao@gmail.com
mengkang https://mengkang.net i@zhoumengkang.com
或者发给所有组员: team@php-internals.com
贡献者
感谢这些贡献者:https://github.com/reeze/tipi/contributors
2022年11月30日 PHP中有一些特殊的函数和方法,这些函数和方法相比普通方法的特殊之处在于: 用户代码通常不会主动调用,而是在特定的时机会被PHP自动调用。在PHP中通常以""打头的方法都作为魔术方法, 所以通常不要定义以""开头的函数或方法。例如:autoload()函数, 通常我们不会手动调用这个函数, 而如果在代码中访问某个未定义的方法, 如过已经定义了autoload()函数,此时PHP将会尝试调用autoload()函数, 例如在类的定义中如果定义了construct()方法,在初始化类的实例时将会调用这个方法, 同理还有__destuct()方法。
2022年11月29日 面向对象的三大特性(封装、继承、多态),在前一小节介绍了封装,这一小节我们将介绍继承和多态的实现。
2022年11月29日 面向对象的三大特性(封装、继承、多态),其中封装是一个非常重要的特性。封装隐藏了对象内部的细节和实现,使对象能够集中而完整的描述并对应一个具体的事物,只提供对外的访问接口,这样可以在不改变接口的前提下改变实现细节,而且能使对象自我完备。除此之外,封装还可以增强安全性和简化编程。在面向对象的语言中一般是通过访问控制来实现封装的特性。
2022年11月29日 在上一小节,我们介绍了类的结构和声明过程,从而,我们知道了类的存储结构,接口抽象类等类型的实现方式。在本小节,我们将介绍类的成员变量和成员方法。首先,我们看一下,什么是成员变量,什么是成员方法。
类的成员变量在PHP中本质上是一个变量,只是这些变量都归属于某个类,并且给这些变量是有访问控制的。类的成员变量也称为成员属性,它是现实世界实体属性的抽象,是可以用来描述对象状态的数据。
类的成员方法在PHP中本质上是一个函数,只是这个函数以类的方法存在,它可能是一个类方法也可能是一个实例方法,并且在这些方法上都加上了类的访问控制。类的成员方法是现实世界实体行为的抽象,可以用来实现类的行为。
类的成员变量在PHP中本质上是一个变量,只是这些变量都归属于某个类,并且给这些变量是有访问控制的。类的成员变量也称为成员属性,它是现实世界实体属性的抽象,是可以用来描述对象状态的数据。
类的成员方法在PHP中本质上是一个函数,只是这个函数以类的方法存在,它可能是一个类方法也可能是一个实例方法,并且在这些方法上都加上了类的访问控制。类的成员方法是现实世界实体行为的抽象,可以用来实现类的行为。
2022年11月10日 面向对象编程中我们的编程都是围绕类和对象进行的。那在PHP内部类是怎么实现的呢?它的内存布局以及存储是怎么样的呢?继承、封装和多态又是怎么实现的呢?
2022年04月13日
2022年04月12日 匿名函数在编程语言中出现的比较早,最早出现在Lisp语言中,随后很多的编程语言都开始有这个功能了, 目前使用比较广泛的Javascript以及C#,PHP直到5.3才开始真正支持匿名函数, C++的新标准C++0x也开始支持了。
匿名函数是一类不需要指定标示符,而又可以被调用的函数或子例程,匿名函数可以方便的作为参数传递给其他函数, 最常见应用是作为回调函数。
匿名函数是一类不需要指定标示符,而又可以被调用的函数或子例程,匿名函数可以方便的作为参数传递给其他函数, 最常见应用是作为回调函数。
2022年04月12日 前面小节中对函数的内部表示以及参数的传递,返回值都有了介绍,那函数是怎么被调用的呢? 内置函数和用户定义函数在调用时会有什么不一样呢?下面将介绍函数调用和执行的过程。
2022年04月09日 在编程语言中,一个函数或一个方法一般都有返回值,但也存在不返回值的情况,此时,这些函数仅仅是处理一些事务, 没有返回,或者说没有明确的返回值,在pascal语言中它有一个专有的关键字 procedure 。 在PHP中,函数都有返回值,分两种情况,使用return语句明确的返回和没有return语句返回NULL。
2022年04月08日
2022年04月07日
2022年04月07日
2022年04月06日
2022年04月05日
2022年04月03日
2022年04月02日 PHP是弱类型的动态语言,在前面的章节中我们已经介绍了PHP的变量都存放在一个名为ZVAL的容器中, ZVAL包含了变量的类型和各种类型变量的值。 PHP中的变量不需要显式的数据类型定义,可以给变量赋值任意类型的数据, PHP变量之间的数据类型转换有两种: 隐式和显式转换。
2022年04月01日 global语句的作用是定义全局变量,例如如果想在函数内访问全局作用域内的变量则可以通过global声明来定义。 下面从语法解释开始分析。
2022年03月31日
2022年03月29日 在强类型的语言当中,当使用一个变量之前,我们需要先声明这个变量。然而,对于PHP来说, 在使用一个变量时,我们不需要声明,也不需要初始化,直接对其赋值就可以使用,这是如何实现的?
2022年03月29日 通过前面章节的描述,我们已经知道了PHP中变量的存储方式--所有的变量都保存在zval结构中。 下面介绍一下PHP内核如何实现变量的定义方式以及作用域。