php (十二) 面向对象 构造方法与析构方法

1. 构造方法
 
 大多数类都有一种称为构造函数的特殊方法。当创建一个对象时,它将自动调用构造函数,也就是使用new这个关键字来实例化对象的时候自动调用构造方法。
 
 
构造函数的声明与其它操作的声明一样,只是其名称必须是__construct( )。这是PHP5中的变化,以前的版本中,构造函数的名称必须与类名相同,这种在PHP5中仍然可以用,但现在以经很少有人用了,这样做的好处是可以使构造函数独立于类名,当类名发生改变时不需要改相应的构造函数名称了。为了向下兼容,如果一个类中没有名为__construct( )的方法,PHP将搜索一个php4中的写
 
法,与类名相同名的构造方法。
格式:function __construct ( [参数] ) { ... ... }
在一个类中只能声明一个构造方法,而是只有在每次创建对象的时候都会去调用一次构造方法,不能主动的调用这个方法,所以通常用它执行一些有用的初始化任务。比如对成属性在创建对象的时候赋初值。
 
 示例:
 
 
 
[php] view plaincopy
<?  
//创建一个人类  
class Person  
{  
//下面是人的成员属性  
var $name;         
var $sex;          
var $age;         
//定义一个构造方法参数为$name、$sex和 $age  
function __construct($name, $sex, $age)  
{  
//通过构造方法传进来的$name给成员属性$this->name赋初使值  
$this->name=$name;  
//通过构造方法传进来的$sex给成员属性$this->sex赋初使值  
$this->sex=$sex;  
//通过构造方法传进来的$age给成员属性$this->age赋初使值  
$this->age=$age;  
}  
//这个人的说话方法  
function say()  
{  
echo "我的名子叫:".$this->name." 性别:".$this->sex." 我的年龄是:".$this->age."<br>";  
}  
}  
//通过构造方法创建3个对象$p1、p2、$p3,分别传入三个不同的实参为姓名、性别和年龄  
$p1=new Person(“张3”,”男”, 22);  
$p2=new Person(“李4”,”女”, 33);  
$p3=new Person(“王5”,”男”, 44);  
//下面访问$p1对象中的说话方法  
$p1->say();  
//下面访问$p2对象中的说话方法  
$p2->say();  
//下面访问$p3对象中的说话方法  
$p3->say();  
?>  
 
 
输出结果为:
我的名子叫:张3性别:男我的年龄是:22
我的名子叫:李4性别:女我的年龄是:33
我的名子叫:王5性别:男我的年龄是:44
 
2.析构函数:
    与构造函数相对的就是析构函数。析构函数是PHP5新添加的内容,在PHP4中没有析构函数。析构函数允许在销毁一个类之前执行的一些操作或完成一些功能,比如说关闭文件,释放结果集等,析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行,也就是对象在内存中被销毁前调用析构函数。与构造函数的名称类似,一个类的析构函数名称必须是__destruct( )。析构函数不能带有任何参数。
 格式:function __destruct ( ) { ... ... }
 
 示例:
 
 

<span style="color:#333333;"><?
//创建一个人类
class Person
{
//下面是人的成员属性
var $name;
var $sex;
var $age;
//定义一个构造方法参数为$name、$sex和$age  

function __construct($name, $sex, $age)
{
//通过构造方法传进来的$name给成员属性$this->name赋初使值
$this->name=$name;
//通过构造方法传进来的$sex给成员属性$this->sex赋初使值
$this->sex=$sex;
//通过构造方法传进来的$age给成员属性$this->age赋初使值
$this->age=$age;
}
//这个人的说话方法
function say()
{
echo "我的名子叫:".$this->name." 性别:".$this->sex." 我的年龄是:".$this->age."<br>";
}
//这是一个析构函数,在对象销毁前调用
function __destruct()
{
echo “再见”.$this->name.”<br>”;  

}
//通过构造方法创建3个对象$p1、p2、$p3,分别传入三个不同的实参为姓名、性别和年龄
$p1=new Person(“张3”,”男”, 22);
$p2=new Person(“李4”,”女”, 33);
$p3=new Person(“王5”,”男”, 44);
//下面访问$p1对象中的说话方法
$p1->say();
//下面访问$p2对象中的说话方法
$p2->say();
//下面访问$p3对象中的说话方法
$p3->say();
?></span>

 
 
输出结果为:
我的名子叫:张3性别:男我的年龄是:22
我的名子叫:李4性别:女我的年龄是:33
我的名子叫:王5性别:男我的年龄是:44
 
销毁张3
销毁李4
销毁王5
 
 
 

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索析构函数
, 对象
, 函数
, 方法
, 组态王 485通...
, 构造方法
, 析构函数 类做参数
, 类名
, 析构对象link
, 销毁对象
, 一个
, 析构方法
, 性别
php构造函数
c 面向对象 析构函数、面向对象软件构造 pdf、面向对象软件构造、面向对象构造函数、js 面向对象 构造函数,以便于您获取更多的相关知识。

时间: 2024-12-25 17:20:40

php (十二) 面向对象 构造方法与析构方法的相关文章

php面向对象全攻略 (四)构造方法与析构方法_php基础

8.构造方法与析构方法 大多数类都有一种称为构造函数的特殊方法.当创建一个对象时,它将自动调用构造函 数,也就是使用new 这个关键字来实例化对象的时候自动调用构造方法. 构造函数的声明与其它操作的声明一样,只是其名称必须是__construct( ).这是PHP5 中 的变化,以前的版本中,构造函数的名称必须与类名相同,这种在PHP5 中仍然可以用,但 现在以经很少有人用了,这样做的好处是可以使构造函数独立于类名,当类名发生改变时不 需要改相应的构造函数名称了.为了向下兼容,如果一个类中没有名

php构造方法中析构方法在继承中的表现_php技巧

本文为大家分享了php构造方法之析构方法在继承中的表现,供大家参考,具体内容如下 子类中没有定义构造方法时,会自动调用父类的构造方法.因此实例化子类时,需按照父类的构造方法的形式进行. 修改为: 子类定义了自己的构造方法,则不会自动调用父类的构造方法,但可以手动调用:parent::__construct(); 但通常,在子类,很多时候,在构造方法中,都应该(需要)去调用父类的构造方法以节省代码,增加可读性: 子类中没有定义析构方法时,会自动调用父类的析构方法.子类定义了自己的析构方法,则不会自

php 面向对象编程之构造方法与析构方法

大多数类都有一种称为构造函数的特殊方法.当创建一个对象时,它将自动调用构造函 数,也就是使用new 这个关键字来实例化对象的时候自动调用构造方法. 构造函数的声明与其它操作的声明一样,只是其名称必须是__construct( ).这是PHP5 中 的变化,以前的版本中,构造函数的名称必须与类名相同,这种在PHP5 中仍然可以用,但 现在以经很少有人用了,这样做的好处是可以使构造函数独立于类名,当类名发生改变时不 需要改相应的构造函数名称了.为了向下兼容,如果一个类中没有名为__construct

&lt;十二&gt;面向对象分析之UML核心元素之节点和设备

节点,设备 一:概念        ---->是带有至少一个处理器,内存以及可能还带有其他设备的处理元素.在实际工作中,一般说来服务器,工作站或者客户机都可以称为一个节点.        ---->节点就是应用程序的部署单元.        ---->节点元素特别用于部署图,描述应用程序在物理结构上是如何部署在应用环境中的,是一种包括软,硬件环境在内的拓扑结构描述.        --->在笔者看来,UML中定义的节点所能表达的信息并不够充分,对于应用环境的拓扑结构来说仅仅描述节点

php面向对象中构造 析构 封装性

构造方法与析构方法构造方法: 大多数类都有一种称为构造函数的特殊方法.当创建一个对象时,它将自动调用构造函数,也就是使用new这个关键字来实例化对象的时候自动调用构造方法. 构造函数的声明与其它操作的声明一样,只是其名称必须是__construct( ).这是PHP5中的变化,以前的版本中,构造函数的名称必须与类名相同,这种在PHP5中仍然可以用,但现在以经很少有人用了,这样做的好处是可以使构造函数独立于类名,当类名发生改变时不需要改相应的构造函数名称了.为了向下兼容,如果一个类中没有名为__c

Swift语法专题十二——方法

Swift讲解专题十二--方法 一.引言         方法只是一个术语,其实就是将函数与特定的类型结合,类.结构体.枚举都可以定义方法,方法又分为实例方法和类型方法,类型方法类似于Objective-C中的类方法.Swift和Objective-C的一大不同是,Objective-C只有在类中可以定义方法. 二.实例方法基础         实例方法的语法和函数完全一致,其和具体类型的实例所关联,实例方法在调用时由类型的实例点语法进行调用来完成一些功能模块.示例如下: class Math

个人网站推广的精选十二个好方法

个人网站|推广|网站推广 我的网站,建站才两个多月,最开始日访问IP才区区几十个,不过现在时常突破一万,最高还达到过一万五.好东西当然还是不能独享,下面将我用过的所有推广方法公布出来. 当然还是有前提的,首先你的网站必须有吸引人的地方,另外还要注意内容经常更新,这两个条件满足了,那就开始吧. 一.加入各大搜索引擎. 百度,GOOGLE,一搜,雅虎,中搜,3721这些都是知名的.还有一些不太有名的也可以加入,比如孙悟空,K风搜索,快搜,天网搜索等,虽然他们每天带来的流量不大,但时间长了大话,带来的

php学习笔记 面向对象的构造与析构方法

复制代码 代码如下: <?php /* * 1.对象中成员的访问(在一个对象的内部方法中,去访问本对轩昂中的其他方法和成员属性) * 2.在对象中的方法中都默认有一个$this关键字,这个关键字代表调用这个方法的对象 * * 构造方法 * * 1.是对象创建完成后,"第一个""自动调用"的方法 * * 2.构造方法的定义,方法名是一个固定的, * 在php4中:和类名相同的方法就是构造方法 * 在php5中:构造方法选择使用 魔术方法__construct()

php学习笔记 面向对象的构造与析构方法_php基础

复制代码 代码如下: <?php /* * 1.对象中成员的访问(在一个对象的内部方法中,去访问本对轩昂中的其他方法和成员属性) * 2.在对象中的方法中都默认有一个$this关键字,这个关键字代表调用这个方法的对象 * * 构造方法 * * 1.是对象创建完成后,"第一个""自动调用"的方法 * * 2.构造方法的定义,方法名是一个固定的, * 在php4中:和类名相同的方法就是构造方法 * 在php5中:构造方法选择使用 魔术方法__construct()