1.什么是构造函数?
构造函数( __construct() )是一种特殊的成员函数,与其他成员函数不同,不需要用户来调用它,而是在建立对象时自动执行。
在(PHP4.0)构造函数的名字必须与类名同名,而不能由用户任意命名,以便编译系统能识别它并把它作为构造函数处理。它不具有任何类型,不返回任何值。
(PHP5.3.3在命名空间中,与类名同名的方法不再作为构造函数)
构造函数的功能是由用户定义的,用户根据初始化的要求设计函数体和函数参数。具有构造函数的类会在每次创建新对象时先调用此方法,所以非常适合在使用对象之前做一些初始化工作。
2.构造函数的作用
* 类的构造方法,是一个魔术方法
* 自动的被调用(可以被内部进行使用并调用)
* 不用申明,相当于默认一个没有任何执行语句的构造函数
* 会自动返回一个当前类的对象
* 一个类中有且只有一个构造函数
* 构造函数可以带参数,通常是给类的函数用来初始化赋值
3.什么是析构函数?
析构函数( __destruct() )也是一个特殊的成员函数,它的作用与构造函数相反,析构函数是与构造函数作用相反的函数。
当对象的生命期结束时,会自动执行析构函数。(当某个对象成为垃圾或者当对象被显示销毁时执行)有PC模块
Note:
析构函数在脚本关闭时调用,此时所有的 HTTP 头信息已经发出。
脚本关闭时的工作目录有可能和在 SAPI(如 apache)中时不同。
4.析构函数的作用
* 在垃圾对象被收回时执行
* 由系统自动调用
* 析构函数不能够带参数
举个例子:
5. 面向对象的特征
面向对象有三大基本特征分别是:封装,继承,多态,个别书籍有(抽象)
现在就来讲讲继承;
PHP是单继承的,一个类只能继承一个父类;
所谓继承是指可以让某个类型的对象获得另一个类型的对象的属性的方法。它支持按级分类的概念。
继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。
继承的过程,就是从一般到特殊的过程。要实现继承,可以通过“继承”(Inherit)和“组合”(Combination)来实现。继承概念的实现方式有二类:实现继承与接口继承。实现继承是指直接使用基类的属性和方法而无需额外编码的能力;
接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力;
继承的相关作用:
* 使用继承,关键字 extends
* 默认父类(Animal)中的属性和行为都被子类继承下来,可以不用再次去声明了
* 继承可以大大的减少我们的代码中的重复
* 继承只能有且也只有一个父类
* 构造函数也能被继承,当然它会被子类的构造函数给覆盖
举个例子: