PHP类(二)-类的构造方法和析构方法

构造方法

构造方法是对象创建完成后第一个被对象自动调用的方法,用来完成对象的初始化

在每个类中都会有一个构造方法,如果没有声明的话,类中会存在一个没有参数列表并且内容为空的构造方法。如果声明的话,默认的构造方法将被替代。

在PHP5以前的版本中,构造方法的名称要与类名相同,这种方法在PHP5中也能用。

<?php
	class Person{
		var $name;
		var $age;
		var $sex;
		
		function __construct($name="",$age=23,$sex="Male"){ //给成员属性赋初值
			$this->name = $name; //创建对象的时候,使用传入的$name参数为$this->name赋初值
			$this->age = $age; //创建对象的时候,使用传入的$age参数为$this->age赋初值
			$this->sex = $sex; //创建对象的时候,使用传入的$sex参数为$this->sex赋初值
		}
		
		function Say(){
			echo "My name is ".$this->name.",and my age is ".$this->age.",sex is ".$this->sex;
			echo "<br>";
		}
	}
	
	$p1 = new Person("Tom");
	$p2 = new Person("John",21); //有参数传入的时候会覆盖掉成员属性的初值
	$p3 = new Person("Alex",25,"Female");
	
	$p1->say();
	$p2->say();
	$p3->say();
?>

 运行结果

析构方法

析构方法是对象在销毁之前最后一个被对象自动调用的方法,用于对象被销毁的时候。

<?php
	class Person{
		var $name;
		
		function __construct($name="",$age=23,$sex="Male"){
			$this->name = $name;
		}
		
		function __destruct(){
			echo $this->name." be killed.";
			echo "<br>";
		}
	}
	
	$p1 = new Person("Tom");
	$p1 = null; //赋予空值,让其失去引用
	$p2 = new Person("John");
	$p3 = new Person("Alex");
	
?>

运行结果

可以看到语句输出的顺序不一样,第三个比第二个还早输出

第一个对象在声明完了之后被赋予了空值,最先失去引用,然后自动调用了析构函数

因为对象的引用都是放在栈内存中,由于栈的后进先出的特点,后创建的对象引用会被先释放,所以先调用第三个对象的析构方法,再调用第二个对象的析构方法

转载于:https://www.cnblogs.com/sch01ar/p/8145390.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值