只是对所学知识点的总结和记录,想要了解PHP,自行搜索即可。毕竟是比较古老的语言,比较成熟,信息量也比较大。面向对象编程(OOP)是一种计算机编程框架。OOP的一个基本原则是计算机程序由可以作为子例程的单个单元或对象组成。OOP实现的软件工程的三个目标:可重用性、灵活性和可扩展性。PHP面向对象借鉴了JAVA,我们先来看看基本语法。PHP有一个完整的对象模型。功能包括:访问控制、抽象类和最终类和方法、附加魔术方法、接口、对象复制。PHP对待对象的方式与对待引用和句柄的方式相同,即每个变量都持有对对象的引用,而不是整个对象的副本。请参阅对象和引用。基本语法面向对象编程的三个基本要素:封装、继承和多态。基本上,一个文件就是一个类。类文件中没有进程,类中只有方法。每个类的定义都以关键字class开头,后面是类名,后面是一对花括号,其中包含了类的属性和方法的定义。类的可变成员称为“属性”,或“字段”或“特征”,在本文档中统称为“属性”。属性声明以关键字public、protected或private开头,然后是普通变量声明。常量可以定义为在整个类中保持不变的值。const关键字__constructPHP允许开发人员将类中的方法定义为构造函数。__destruct析构函数在对象的所有引用被删除或对象被显式销毁时执行。封装与解封装封装就是将对象的属性和服务组合成一个独立、相同的单元,尽可能地隐藏对象的内部细节。一种是将对象的所有属性和所有服务组合在一起,形成一个不可分割的单一单元(对象)。另一种是隐藏信息,尽可能隐藏对象内部细节,对外形成边界,对外只保留有限的接口和属性或方法的访问控制(PHP7.1.0后支持常量))是通过在外部连接前面加上关键字public(公共)、protected(保护)或private(私有)来实现的。可以从任何地方访问定义为public的类成员。定义为受保护的类成员可以由其自身及其子类和超类访问。定义为私有的类成员只能由定义它们的类访问。然而,PHP的神奇方法可以用于解包:__get()方法用于获取私有成员属性的值。有一个参数,传入要获取的成员属性名,或者返回获取到的属性值。__set()方法用于设置私有成员属性的值。它有两个参数。第一个参数是要设置的属性的名称,第二个参数是要赋予属性的值。继承和重载关键字extends。继承对于功能的设计和抽象非常有用,相似的对象增加新的功能不需要重写这些常用的功能。一个类只能直接从一个类继承数据(单继承)继承就是复制父类的成员属性和方法。类重载就是定义相同的方法名。调用父类的重写方法:一种是使用父类的“类名::”调用父类中重写的方法;另一种是使用“parent::”调用父类抽象类中被重写的方法,而接口抽象类关键字abstract定义为abstract的类不能被实例化。任何一个类,如果其中至少有一个方法被声明为abstract,那么这个类就必须被声明为abstract。定义为abstract的方法只声明其调用方法(参数),不能定义其具体的功能实现。一个抽象类中必须至少有一个抽象方法。抽象类必须在抽象方法之前使用abstract。抽象方法没有花括号。继承之后,所有的抽象方法都必须重载。抽象类一般用来规范类的使用。类实现。objectinterface关键字interface接口是一个契约。所以,在程序中,必须实现接口的所有方法,否则会报致命错误。接口不能被实例化,只能被引用它们的实现(引用)重载。引用之后,必须重载所有接口的所有抽象方法。单继承和多引用是先继承再引用。它们都是常量成员方法。不需要在前面使用abstract关键字。所有属性和方法都必须是公共的。在实践中,接口常常用于两个辅助目的,以规范项目的编写:因为实现了相同的接口,开发人员创建的对象,虽然派生自不同的类,但可以互换使用。常用于多个数据库、多个支付网关、不同缓存策略等的服务接入,无需修改任何代码即可实现不同实现之间的切换。它允许函数和方法接受一个符合接口的参数,而不必关心对象是如何做的以及它是如何实现的。这些接口通常被命名为Iterable、Cacheable、Renderable,以反映功能的含义。static关键字声明一个类的属性或方法为static,无需实例化类即可直接访问。不能通过类的实例化对象访问静态属性(但静态方法可以)。由于可以在没有对象的情况下调用静态方法,因此静态方法中不能使用伪变量$this。Final关键字如果父类中的方法声明为final,则子类不能重写该方法。如果一个类被声明为final,它就不能被继承。final等于方法的结束。魔术方法__construct()、__destruct()、__call()、__callStatic()、__get()、__set()、__isset()、__unset()、__sleep()、__wakeup()、__serialize()、__unserialize()、__toString()、__invoke()、__set_state()、__clone()和__debugInfo()在PHP中称为Magic方法。在命名自己的类方法时不能使用这些方法名,除非你想使用它们的神奇功能。PHP可以通过反射API和魔术方法以多种方式实现元编程。Trait代码重用Trait是PHP等单继承语言的一种代码重用机制。为了减少单一继承语言的局限性,Trait使开发者可以在不同的层次结构中自由地复用独立类中的方法。Trait和Class组合的语义定义了一种降低复杂性并避免与传统多重继承和Mixin类相关的典型问题的方法。Trait类似于Class,但仅??旨在以细粒度和一致的方式组合功能。不能由特征本身实例化。在传统继承的基础上增加横向特征组合;也就是说,应用程序的多个类之间不需要继承。关于特征优先级,从基类继承的成员被特征插入的成员覆盖。优先顺序是当前类的成员覆盖特征方法,特征覆盖继承的方法。
