构造函数和析构函数

构造函数

构造函数被定义为对象实例化时自动执行的一段代码。

OOP构造函数的一些优点:

1、构造函数可以接受参数,能够在创建对象时赋给特定的对象属性
2、构造函数可以调用类方法或其他函数
3、类的构造函数可以调用其它构造函数,包括父类的构造函数

notice
PHP4也提供了类构造函数,但它使用了与PHP5不同的语法,更为麻烦。PHP4的构造函数只是与类同名的类方法。这种约定使得很难对类重命名。新的构造函数命名约定解决了这个问题。但是,处于对兼容性的考虑,如果一个类没有包含满足新命名约定的构造函数,就会查找与类同名的方法;如果找到,此方法就被认为是构造函数。

构造函数一般语法

function __construct([argumrnt1, argumrnt2...argumrntN ]){}

tips:如果要确保这些方法只能在构造函数中被调用,就应当将其作用于设置为private,确保无法通过对象或子类直接调用它们。

调用父类构造函数

PHP不会自动调用父类构造函数,必须使用parent 关键字显示调用。实例如下:
<?php  
	class Employee{
		protected $name;
		protected $title;

		function __construct(){
			echo "<p>Employee constructor called!</p>";
		}
	}

	class Manager extends Employee{
		function __construct(){
			parent::__construct();
			echo "<p>Manager constructor called!</p>";
		}
	}

	$employee = new Manager();
?>

调用无关的构造函数

可以调用与实例化对象没有任何关系的类构造函数,只需在__construct 前面加上类名即可。

举个例子,假设前面示例中的Manager 和 Employee 类没有继承层次关系,只是同一个库中的两个类。Employee的构造函数依然可以在Manager构造函数中被调用:
Employee::__construct();
这样调用Employee构造函数将得到与前例相同的结果。



析构函数

析构函数名为 __destruct()。

脚本执行结束时,PHP会撤销内存中的所有对象。
因此,如果实例化的类和实例化时创建的信息都留在内存中,就不需要显示的声明析构函数;
但是,如果实例化时创建了不那么容易丢失(如存储在数据库中)的数据,并应当在对象撤销时撤销这些数据,为此就需要创建一个定制的析构函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值