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"); ?>
运行结果
可以看到语句输出的顺序不一样,第三个比第二个还早输出
第一个对象在声明完了之后被赋予了空值,最先失去引用,然后自动调用了析构函数
因为对象的引用都是放在栈内存中,由于栈的后进先出的特点,后创建的对象引用会被先释放,所以先调用第三个对象的析构方法,再调用第二个对象的析构方法
PHP类(二)-类的构造方法和析构方法的更多相关文章
- php课程 12-38 php的类的构造方法和析构方法怎么写
php课程 12-38 php的类的构造方法和析构方法怎么写 一.总结 一句话总结:a.__construct(参数){},__destruct(){},b.如果类中的一个方法和类名相同,则该方法为构 ...
- PHP面向对象的构造方法与析构方法
构造方法与析构方法是对象中的两个特殊方法,它们都与对象的生命周期有关.构造方法时对象创建完成后第一个被对象自动调用的方法,这是我们在对象中使用构造方法的原因.而析构方法时对象在销毁之前最后一个被对象自 ...
- 009-对象—— 构造方法__construct析构方法__destruct使用方法 PHP重写与重载
<?php /**构造方法__construct析构方法__destruct使用方法 PHP重写与重载 */ //构造方法:当实例化对象时,自动运行的方法 /*class channel{ fu ...
- 浅谈PHP面向对象编程(三、构造方法和析构方法)
3.0 构造方法和析构方法 从我之前的博客可以发现,实例化一个类的对象后,如果要为这个对象的属性赋值,需要直接访问该对象的属性.如果想要在实例化对象的同时就为这个对象的属性进行赋值,则可以通过构造方法 ...
- PHP其它常用函数;<<<面向对象(OPP)的三大特性:封装、继承、加态:>>> <----面试题 ;构造方法、析构方法,魔术方法、set、get方法;静态;抽象类;接口
PHP其它常用函数: 赋值:$r->name = "元素"; 取值: echo $r->name; count() 计算数组中的元素数目或对象中 ...
- Java构造方法与析构方法实例剖析
Java构造方法 类有一个特殊的成员方法叫作构造方法,它的作用是创建对象并初始化成员变量.在创建对象时,会自动调用类的构造方法. 构造方法定义规则:Java 中的构造方法必须与该类具有相同的名字,并且 ...
- php构造方法与析构方法
1. 构造方法 <?php //构造方法 __construct() 是在实例化对象时被自动调用 //用途:可以用于初始化程序(可以给成员属性赋值,也可以调用成员方法) //语法:[修饰符] f ...
- 【PHP构造方法和析构方法的使用】
构造方法:__construct,析构方法:__destruct 代码示例: <?php class Person { public $name; public $age; public fun ...
- PHP中的构造方法和析构方法
构造方法(_ _construct): 构造方法,是一个特殊的方法: 1,名字是固定的:_ _construct: 2,该方法通常都不要我们自己调用,而是在new一个对象的时候会自动调用. 3,该方法 ...
随机推荐
- java filter 实现权限控制
import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.Http ...
- 泛型学习第四天——List泛型终结:什么是List泛型,泛型筛选,泛型排序
为什么要用泛型集合? 在C# 2.0之前,主要可以通过两种方式实现集合: a.使用ArrayList 直接将对象放入ArrayList,操作直观,但由于集合中的项是Object类型,因此每次使用都必须 ...
- Gerrit使用感受
CodeReivew好工具,可以随业务需求灵活配置权限等.
- C# XML对象序列化、反序列化 - PEPE YU
http://www.tuicool.com/articles/IjE7ban http://www.cnblogs.com/johnsmith/archive/2012/12/03/2799795. ...
- 安装rackspace private cloud --2 overview
Target hosts 包含以下 network bridges: LXC internal lxcbr0: 必须的,自动生成,containers的外网连接,不连接到host上任何物理/逻辑接口, ...
- OpenStack企业私有云新需求(1):Nova 虚机支持 GPU
作者:Sammy Liu 刘世民 本系列会介绍OpenStack 企业私有云的几个需求: GPU 支持 自动扩展(Auto-scaling)支持 混合云(Hybrid cloud)支持 物理机(Bar ...
- PrintWriter的使用
java.io.PrintWriter 具有自动行刷新的缓冲字符输出流,特点是可以按行写出字符串,并且可以自动行刷新. java.io.BufferedWriter是缓冲字符输出流,内部有缓冲区可以进 ...
- Explain分析查询语句
表的读取顺序 读取操作的类型 可用索引,实际使用的索引 表之间的引用 每张表多少行被优化器查询 索引的长度 EXPLAIN字段解释: ØTable:显示这一行的数据是关于哪张表的 Øpossible ...
- openGL 3.3+ 场景渲染
这个渲染程序是研一下学期的计算机图形学课程大作业,花了两三周学习使用了下 openGL 3.3+ 库,整合出了这个渲染程序,完成于 2013/07/05. 相对于老版本的库,新版本更开放,给了程序员更 ...
- 奔跑吧,OpenStack现场分享:超融合架构如何抹平物理硬件差异?
转自:https://www.ustack.com/blog/moping/ “通过引入OpenStack这一中间层,实现了云平台统一的管理调度支配向上交付,解决了业务的灵活性问题.但是在抹平下层物理 ...