php魔术方法例子,2019-07-23 php魔术方法

本文详细介绍了PHP中的魔术方法__construct和__destruct。__construct作为构造方法,在类实例化时自动触发,常用于初始化任务,例如设置属性值。而__destruct作为析构方法,在对象销毁前自动调用,适用于资源清理如关闭数据库连接。通过示例代码展示了这两个方法的工作原理和应用场景。
摘要由CSDN通过智能技术生成

本文对一些php中的魔术方法进行总结,魔术方法顾名思义就是具备神奇功能的方法(function)。魔术方法通常在某些特定情况下自动触发,不能用实例化变量名->方法名()来主动触发。不同的魔术方法有不同的触发情况,魔术方法都以”__”两个下划线开头,一定要注意是“两个下划线”,如果写成一个下划线,不报错,但也不会被触发。

1.构造方法   __construct(参数){ }

该魔术方法,在实例化类时自动触发,不能主动触发。一般用于执行某些初始化任务,在一个类中,只能声明一个构造方法,下面我们用构造方法赋初始值。

classPerson{var $name;var $age;var $sex;//构造方法

function __construct($name,$age,$sex)

{//赋值

$this->name = $name;$this->age = $age;$this->sex = $sex;

}functionsay()

{echo "My name is ".$this->name.". I am ".$this->age." years old.".$this->sex." in sex.";

}

}//在实例化时传入参数 执行构造方法

$obj = new Person("ZhangSan","20","male");//再调用say()方法

$obj->say();

最后的输出结果是:My name is ZhangSan. I am 20 years old.male in sex.

从上面的例子可以看出,构造方法在类被实例化时主动触发,并可以传入参数。

以下几种情况适合放在构造方法内:

①数据库类

使用数据库之前,必须先连接数据库。我们可以将连接数据库的代码放在构造方法里。

②分页类

每次计算分页之前,必须获取当前页数、计算总页数,就可以放在构造方法里。

③上传类

必须先获取上传的文件 $file = $_FILES['form_name'],它就可以放在构造方法里。

④绘图类

必须先创造一个画板,这个过程也可以放在构造方法。

2.析构方法   __destruct( ){ }

析构函数允许在销毁一个类之前执行的一些操作或完成一些功能,比如说关闭文件, 释放结果集等,析构函数会在到某个对象的所有引用都被删除或者当对象被显示销毁时执行,也就是对象在内存中被销毁前调用析构函数。与构造函数的名称类似, 一个类的析构函数名称必须是__destruct( )。析构函数不能带有任何参数。

下面我们来看一下析构函数的具体应用:

classStudent{functionsay()

{echo "I am a student. ";

}//析构方法

function__destruct()

{echo "I am so happy.";

}

}//实例化类

$obj_s = newStudent();//调用say()方法

$obj_s->say();

最后的输出结果是:I am a student. I am so happy.

可以看到,我们并没有主动去调用析构方法,但却输出了析构方法的结果。是因为在调用类方法结束后会自动释放内存。在释放内存前,主动触发了析构函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值