【www.gdgbn.com--ling】
第七章(4)面向对象详解_构造方法与析构方法
特殊的引用$this的使用
实例说明:
class Ren
{
var $xingming;
var $nianling;
var $xingbie;
function shuohua()
{echo "我的姓名是:".$this->xingming.",我的年龄是:".$this->nianling.",我的性别是:".$this->xingbie."
";}
function zoulu()
{echo "我在走路
";}
function chifan()
{echo "我在吃饭
";}
}
$r1=new Ren(); $r2=new Ren(); $r3=new Ren();
$r1->xingming="张三"; $r2->xingming="李四"; $r3->xingming="王五";
$r1->nianling=90; $r2->nianling=23; $r3->nianling=41;
$r1->xingbie="男"; $r2->xingbie="女"; $r3->xingbie="男";
//人1.2.3各自说出自己的姓名.年龄.性别:
$r1->shuohua(); $r2->shuohua(); $r3->shuohua();
输出结果:
我的姓名是:张三,我的年龄是:90,我的性别是:男
我的姓名是:李四,我的年龄是:23,我的性别是:女
我的姓名是:王五,我的年龄是:41,我的性别是:男
$this的作用:代表对象的一个属性,相当于第一人称"我"的概念.
构造方法的特点:名称与类相同,对象一产生的时候自动调用,去初始化成员属性.
实例说明:(此实例是在php4里面的声明方法)
class Ren
{
var $xingming;
var $nianling;
var $xingbie;
function Ren($xingming,$nianling,$xingbie)
{
$this->xingming=$xingming;
$this->nianling=$nianling;
$this->xingbie=$xingbie;
}
function shuohua()
{echo "我的姓名是:".$this->xingming.",我的年龄是:".$this->nianling.",我的性别是:".$this->xingbie."
";}
function zoulu()
{echo "我在走路
";}
function chifan()
{echo "我在吃饭
";}
}
$r1=new Ren("张三",90,"男");
$r2=new Ren("李四",23,"女");
$r3=new Ren("王五",41,"男");
$r1->shuohua(); $r2->shuohua(); $r3->shuohua();
此例如上例输出结果完全相同.
在php5版本中的构造方法是function__construct(),不用写类名,作用相同.
析构方法__destruct()在程序结束前释放要释放的东西的方法.
实例说明:
class Ren
{
var $xingming;
var $nianling;
var $xingbie;
function __construct($xingming,$nianling,$xingbie)
{
$this->xingming=$xingming;
$this->nianling=$nianling;
$this->xingbie=$xingbie;
}
function shuohua()
{echo "我的姓名是:".$this->xingming.",我的年龄是:".$this->nianling.",我的性别是:".$this->xingbie."
";}
function zoulu()
{echo "我在走路
";}
function chifan()
{echo "我在吃饭
";}
function __destruct()
{echo $this->xingming."再见
";}
}
$r1=new Ren("张三",90,"男");
$r2=new Ren("李四",23,"女");
$r3=new Ren("王五",41,"男");
$r1->shuohua(); $r2->shuohua(); $r3->shuohua();
输出结果:
我的姓名是:张三,我的年龄是:90,我的性别是:男
我的姓名是:李四,我的年龄是:23,我的性别是:女
我的姓名是:王五,我的年龄是:41,我的性别是:男
王五再见 李四再见 张三再见