构造方法与析构方法
大多数类都有一种称为构造函数的特殊方法。当创建一个对象时,它将自动调用构造函数,也就是使用new这个关键字来实例化对象的时候自动调用构造方法。
构造函数的声明与其它操作的声明一样,只是其名称必须是__construct( )。这是PHP5中的变化,以前的版本中,构造函数的名称必须与类名相同,这种在PHP5中仍然可以用,但现在以经很少有人用了,这样做的好处是可以使构造函数独立于类名,当类名发生改变时不需要改相应的构造函数名称了。为了向下兼容,如果一个类中没有名为__construct( )的方法,PHP将搜索一个php4中的写
法,与类名相同名的构造方法。
格式:function __construct ( [参数] ) { … … }
在一个类中只能声明一个构造方法,而是只有在每次创建对象的时候都会去调用一次构造方法,不能主动的调用这个方法,所以通常用它执行一些有用的初始化任务。比如对成属性在创建对象的时候赋初值。
//创建一个人类
- class Person
- {
-
- var $name;
- var $sex;
- var $age;
-
- function __construct($name, $sex, $age)
- {
-
- $this->name=$name;
-
- $this->sex=$sex;
-
- $this->age=$age;
- }
-
- function say()
- {
- echo "我的名子叫:".$this->name." 性别:".$this->sex." 我的年龄是:".$this->age."<br>";
- }
- }
-
- $p1=new Person("张三","男", 20);
- $p2=new Person("李四","女", 30);
- $p3=new Person("王五","男", 40);
-
- $p1->say();
-
- $p2->say();
-
- $p3->say();
-
- 输出结果为:
- 我的名子叫:张三性别:男我的年龄是:20
- 我的名子叫:李四性别:女我的年龄是:30
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("张三","男", 20);
$p2=new Person("李四","女", 30);
$p3=new Person("王五","男", 40);
//下面访问$p1对象中的说话方法
$p1->say();
//下面访问$p2对象中的说话方法
$p2->say();
//下面访问$p3对象中的说话方法
$p3->say();
输出结果为:
我的名子叫:张三性别:男我的年龄是:20
我的名子叫:李四性别:女我的年龄是:30
我的名子叫:王五性别:男我的年龄是:40
析构函数:
与构造函数相对的就是析构函数。析构函数是PHP5新添加的内容,在PHP4中没有析构函数。析构函数允许在销毁一个类之前执行的一些操作或完成一些功能,比如说关闭文件,释放结果集等,析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行,也就是对象在内存中被销毁前调用析构函数。与构造函数的名称类似,一个类的析构函数名称必须是__destruct( )。析构函数不能带有任何参数。
格式:function __destruct ( ) { … … }
//创建一个人类
- class Person
- {
-
- var $name;
- var $sex;
- var $age;
-
- function __construct($name, $sex, $age)
- {
-
- $this->name=$name;
-
- $this->sex=$sex;
-
- $this->age=$age;
- }
-
- function say()
- {
- echo "我的名子叫:".$this->name." 性别:".$this->sex." 我的年龄是:".$this->age."<br>";
- }
-
- function __destruct()
- {
- echo "再见".$this->name."<br>";
- }
-
- $p1=new Person("张三","男", 20);
- $p2=new Person("李四","女", 30);
- $p3=new Person("王五","男", 40);
-
- $p1->say();
-
- $p2->say();
-
- $p3->say();
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("张三","男", 20);
$p2=new Person("李四","女", 30);
$p3=new Person("王五","男", 40);
//下面访问$p1对象中的说话方法
$p1->say();
//下面访问$p2对象中的说话方法
$p2->say();
//下面访问$p3对象中的说话方法
$p3->say();
输出结果为:
我的名子叫:张三性别:男我的年龄是:20
我的名子叫:李四性别:女我的年龄是:30
我的名子叫:王五性别:男我的年龄是:40
再见王五
再见李四
再见张三
相关推荐
根据提供的文件内容,我们可以整理出关于 PHP 构造函数与析构函数的相关知识点: ### 一、PHP构造函数 在 PHP 中,构造函数是类的一个特殊方法,它会在对象创建时自动调用。构造函数的主要作用是初始化对象的属性...
**析构函数**则与构造函数相反,它在对象生命周期结束,即将被销毁时执行。析构函数的作用通常是对资源进行清理,如关闭数据库连接、释放内存等。同样地,从PHP5开始,析构函数使用`__destruct`关键字定义: ```php...
课程由经验丰富的方老师主讲,内容涵盖了 PHP 面向对象的基本概念及其高级应用,如构造函数、析构函数以及引用等重要知识点。 #### 二、面向对象基础 — 构造函数 **构造函数定义**: - 构造函数是一种特殊的类...
本文章向大家介绍php构造函数与析构函数。 php构造函数 1.是对象创建完成后,“第一个”“自动调用”的方法 2.构造方法的定义,方法名是一个固定的, 在php4中:和类名相同的方法就是构造方法 在php5中:构造方法...
标题中提到的“PHP构造函数与析构函数用法示例”实际上向我们介绍了PHP编程语言中面向对象编程的两个特殊的函数,它们分别是构造函数(constructor)和析构函数(destructor)。在面向对象编程中,构造函数和析构...
13. **PHP5构造函数与析构函数**: - 构造函数:`__construct()`,对象创建时自动调用。 - 析构函数:`__destruct()`,对象销毁前自动调用。 14. **GET与POST提交方式的区别**: - GET在URL中传递参数,有长度...
在PHP中,类的实例化过程涉及到了构造函数与析构函数的使用。这两个特殊的方法对于控制对象的生命周期至关重要。本文将详细介绍PHP中的构造函数和析构函数,包括它们的作用、用法以及如何在实际编程中应用。 #### ...
12. **PHP5构造函数与析构函数**:`__construct()`是构造函数,用于对象创建时初始化;`__destruct()`是析构函数,对象销毁前执行。 13. **抓取远程图片到本地**:可以使用`fsockopen()`或`file_get_contents()`等...
25. PHP5构造函数与析构函数 构造函数是类实例化时自动调用的,用于初始化对象;析构函数是对象销毁前自动调用,释放资源。 **编程题解答** 1. 获取文件扩展名 ```php function getFileExtension($url) { return...
在PHP编程语言中,析构函数(__destruct)是一个特殊的方法,它的主要目的是在对象生命周期结束时执行一些必要的清理操作。这些操作可能包括关闭文件、释放资源、清理内存或者执行其他必要的善后工作。理解析构函数...
PHP5中提供的析构函数是__destruct,其与构造方法__construct相对应。 垃圾回收——GC(Garbage Collector) 在PHP中,没有任何变量指向这个对象时,这个对象就成为垃圾,PHP会将其在内存中销毁。 这是PHP的GC(Garbage...
在PHP 5中,析构函数`__destruct()`类似于C++中的析构函数,用于在对象生命周期结束时,即所有对对象的引用都被删除或对象被显式销毁时,执行清理任务。例如释放资源、关闭数据库连接等。这是一个析构函数的例子: ...
析构函数与构造函数不同,父类的析构函数不会被引擎自动调用,子类的析构函数体中必须显式调用parent::__destruct()以执行父类的析构函数。如果子类未定义析构函数,则会继承父类的析构函数。 析构函数有一些特殊的...
析构函数则与构造函数相反,它在对象生命周期结束,即将被销毁之前自动执行。在PHP中,析构函数由`__destruct`关键字定义,通常用于清理资源或执行一些收尾工作。在`Rectangle`类中,如果不需要特别的清理操作,可能...
析构函数(Destructor)与构造函数相反,它在对象生命周期结束,即对象即将被销毁时自动调用。同样,析构函数也以两个下划线`__`开头,名为`__destruct()`。如果只写了一个下划线,析构函数也不会被正确调用,可能...
与构造函数相反,在PHP5中,可以定义一个名为__destruct()的函数,称之为PHP5析构函数,PHP将在对象在内存中被销毁前调用析构函数,使对象在彻底消失之前完成一些工作。对象在销毁一般可以通过赋值为null实现。
父类的析构函数不会被引擎自动调用,和构造函数一样,子类必须在析构函数体中显式调用parent::__destruct(),以确保父类的析构函数被执行。如果子类没有定义析构函数,则会继承父类的析构函数。 需要注意的是,析构...