PHP之面向对象

使用class关键字创建一个类,变量叫属性,函数叫方法。使用new关键字实例化一个对象

类成员的访问控制

Public:可以在任何地方被访问
Protected:可被其所在的类的子类和父类访问
Private:只能在类内部被访问,子类不能访问父类的私有属性
如未声明,默认为public

常量

使用const定义类常量
使用this关键字在类内部访问成员变量和方法

构造函数和析构函数


构造函数在使用new关键字创建对象时自动执行,可传入参数;析构函数在对象被销毁时自动执行,不能有参数。

clone一个对象

clone将原对象的所有信息从内存中赋复制一份,存储在新开辟的内存中。

继承

PHP中使用extends继承一个类,不存在多继承,一个类只能继承一个父类。

parent::关键字

使用parent::关键字访问父类

魔术方法

__clone()方法

__clone方法会重写clone,当使用clone时,不仅会复制变量,还会执行__clone里面的代码

__toString()

__autoload()

__autoload()方法会在第一次引用一个类时调用该方法,可以通过定义这个函数来启用类的自动加载

__set()和__get()

用于处理类内未定义的属性或者处理私有属性

__call()

用于处理类内未定义的方法,第一个参数为方法名,第二个参数为方法的参数;还可用于不同方法名但功能相同的方法。

__invoke()和__callStatic()

序列化

json数据

json_decode(string,bool)当第二个参数为true时,返回一个数组,默认为false返回一个对象。

抽象类

使用关键字abstract来声明一个抽象类以及抽象方法。抽象类不能实例化对象,子类继承抽象父类后,子类中必须有父类中的抽象方法。抽象类起到规定子类结构的作用,子类必须给出父类抽象方法的实现。

接口

接口是一种特殊的抽象类,使用关键字interface来声明一个接口,不能实例化对象。接口中的方法必须全是抽象方法成员属性必须是常量。所有的权限必须是public,由子类来拓展。使用implements代替extends来实现接口,一个类只能继承一个父类,但是可实现多个接口。如果一个类同时使用了继承父类和实现接口,必须先继承再实现。

多态

文件上传


上传文件后,可以看到数组_FILES中添加了一个以file控件的name值为键,Lighthouse.jpg的详细信息为值。

文章作者: Mochazz
文章链接: https://mochazz.github.io/2017/08/13/php(5)/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Mochazz's blog