第七章(4)面向對象詳解_構造方法與析構方法
特殊的引用$this的使用
實例說明:
class Ren
{
var $xingming;
var $nianling;
var $xingbie;
function shuohua()
{echo "我的姓名是:".$this->xingming.",我的年齡是:".$this->nianling.",我的性別是:".$this->xingbie."<br>";}
function zoulu()
{echo "我在走路<br>";}
function chifan()
{echo "我在吃飯<br>";}
}
$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."<br>";}
function zoulu()
{echo "我在走路<br>";}
function chifan()
{echo "我在吃飯<br>";}
}
$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."<br>";}
function zoulu()
{echo "我在走路<br>";}
function chifan()
{echo "我在吃飯<br>";}
function __destruct()
{echo $this->xingming."再見<br>";}
}
$r1=new Ren("張三",90,"男");
$r2=new Ren("李四",23,"女");
$r3=new Ren("王五",41,"男");
$r1->shuohua(); $r2->shuohua(); $r3->shuohua();
輸出結果:
我的姓名是:張三,我的年齡是:90,我的性別是:男
我的姓名是:李四,我的年齡是:23,我的性別是:女
我的姓名是:王五,我的年齡是:41,我的性別是:男
王五再見 李四再見 張三再見