每天都在进步一点点,在这里我将记下我的点点滴滴,希望和大家一起进步,一起学习,一起共同成长PHPer之路! PHPer成长群(49052575)欢迎各界精英加入,互相学习,互补不足。 空间不再更新:如有需要请进 http://www.phpcake.cn

PHP5 构造方法与析构方法

上一篇 / 下一篇  2008-04-09 10:12:02 / 个人分类:php学习

构造方法与析构方法
大多数类都有一种称为构造函数的特殊方法。当创建一个对象时,它将自动调用构造函数,也就是使用new这个关键字来实例化对象的时候自动调用构造方法。
构造函数的声明与其它操作的声明一样,只是其名称必须是__construct( )。这是PHP5中的变化,以前的版本中,构造函数的名称必须与类名相同,这种在PHP5中仍然可以用,但现在以经很少有人用了,这样做的好处是可以使构造函数独立于类名,当类名发生改变时不需要改相应的构造函数名称了。为了向下兼容,如果一个类中没有名为__construct( )的方法,PHP将搜索一个php4中的写
,与类名相同名的构造方法。
格式:function __construct ( [参数] ) { ... ... }
在一个类中只能声明一个构造方法,而是只有在每次创建对象的时候都会去调用一次构造方法,不能主动的调用这个方法,所以通常用它执行一些有用的初始化任务。比如对成属性在创建对象的时候赋初值。
<?
//创建一个人类
classPerson
{
//下面是人的成员属性
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;
}
//这个人的说话方法
functionsay()
{
echo"我的名子叫:".$this->name."性别:".$this->sex."我的年龄是:".$this->age."<br>";
}
}
//通过构造方法创建3个对象$p1p2$p3,分别传入三个不同的实参为姓名、性别和年龄
$p1=newPerson(张三,20);
$p2=newPerson(李四,30);
$p3=newPerson(王五,40);
//下面访问$p1对象中的说话方法
$p1->say();
//下面访问$p2对象中的说话方法
$p2->say();
//下面访问$p3对象中的说话方法
$p3->say();
?>
输出结果为:
我的名子叫:张三性别:男我的年龄是:20
我的名子叫:李四性别:女我的年龄是:30
我的名子叫:王五性别:男我的年龄是:40

析构函数:
   与构造函数相对的就是析构函数。析构函数是PHP5新添加的内容,在PHP4中没有析构函数。析构函数允许在销毁一个类之前执行的一些操作或完成一些功能,比如说关闭文件,释放结果集等,析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行,也就是对象在内存中被销毁前调用析构函数。与构造函数的名称类似,一个类的析构函数名称必须是__destruct( )。析构函数不能带有任何参数。
 格式:function __destruct ( ) { ... ... }
<?
//创建一个人类
classPerson
{
//下面是人的成员属性
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;
}
//这个人的说话方法
functionsay()
{
echo"我的名子叫:".$this->name."性别:".$this->sex."我的年龄是:".$this->age."<br>";
}
//这是一个析构函数,在对象销毁前调用
function__destruct()
{
echo$this->name.“年龄.$this->age.<br>;
}
//通过构造方法创建3个对象$p1p2$p3,分别传入三个不同的实参为姓名、性别和年龄
$p1=newPerson(张三,20);
$p2=newPerson(李四,30);
$p3=newPerson(王五,40);
//下面访问$p1对象中的说话方法
$p1->say();
//下面访问$p2对象中的说话方法
$p2->say();
//下面访问$p3对象中的说话方法
$p3->say();
?>
输出结果为:
我的名子叫:张三性别:男我的年龄是:20
我的名子叫:李四性别:女我的年龄是:30
我的名子叫:王五性别:男我的年龄是:40
王五年龄40
李四年龄30
张三年龄20

TAG: PHP学习 __construct __destruct php学习

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

数据统计

  • 访问量: 15789
  • 日志数: 69
  • 建立时间: 2007-05-14
  • 更新时间: 2008-04-11

RSS订阅

Open Toolbar