《PHP中構(gòu)造函數(shù)和析構(gòu)函數(shù)的具體應(yīng)用及詳細(xì)方案+源碼》要點:
本文介紹了PHP中構(gòu)造函數(shù)和析構(gòu)函數(shù)的具體應(yīng)用及詳細(xì)方案+源碼,希望對您有用。如果有疑問,可以聯(lián)系我們。
構(gòu)造函數(shù)和析構(gòu)函數(shù)的應(yīng)用
1.1 問題
通過構(gòu)造函數(shù)初始化數(shù)據(jù),具有構(gòu)造函數(shù)的類會在每次創(chuàng)建新對象時先調(diào)用此辦法,所以非常適合在使用對象之前做一些初始化工作.
析構(gòu)函數(shù)會在到某個工具的所有引用都被刪除或者當(dāng)工具被顯式銷毀時執(zhí)行.
2.2 計劃
構(gòu)造函數(shù)和析構(gòu)函數(shù)的語法如下:
//構(gòu)造函數(shù)
function __construct([mixed $args[,…]]){
代碼段;
}
//析構(gòu)函數(shù)
function __destruct(void){
代碼段;
}
3.3 步調(diào)
第一步,創(chuàng)建尺度的PHP文檔.
第二步,使用之前創(chuàng)立好的NbaPlayer類,在此基礎(chǔ)上添加構(gòu)造函數(shù),初始化數(shù)據(jù),其代碼如下:
<?php
class NbaPlayer {
// 類的屬性的界說
public $name;
public $height;
public $weight;
public $team;
public $playerNumber;
/**
* 構(gòu)造函數(shù)一般用于初始化數(shù)據(jù)等
* 構(gòu)造函數(shù)在對象被實例化的時候自動挪用
* @param string $name
* @param string $height
* @param string $weight
* @param string $team
* @param string $playerNumber
*/
public function __construct($name,$height,$weight,$team,$playerNumber){
echo $name.'實例化對象的時候會自動挪用<br/>';
$this->name=$name;
$this->height=$height;
$this->weight=$weight;
$this->team=$team;
$this->playerNumber=$playerNumber;
}
//類的辦法的定義
/**
* 跑
*/
public function run(){
echo 'Runing...<br/>';
}
/**
* 控球
*/
public function dribble(){
echo 'Dribbing...<br/>';
}
/**
* 投籃
*/
public function shoot(){
echo 'Shooting...<br/>';
}
/**
* 扣籃
*/
public function dunk(){
echo 'Dunking...<br/>';
}
/**
* 過人
*/
public function pass(){
echo 'Passing...<br/>';
}
}
?>
第三步,添加析構(gòu)函數(shù),當(dāng)對象不再使用的時候自動調(diào)用,一般用于清理法式中使用的系統(tǒng)資源.其代碼如下:
/**
* 析構(gòu)函數(shù),用于清理法式中使用的系統(tǒng)資源,像關(guān)閉數(shù)據(jù)庫連接,釋放資源等
* 析構(gòu)函數(shù)在該對象不再使用的時候自動挪用
*/
public function __destruct(){
echo $this->name."析構(gòu)函數(shù)在銷毀對象或者對象不再使用的時候自動挪用<br/>";
}
第四步,實例化類的時候傳入相應(yīng)參數(shù),這時候構(gòu)造函數(shù)就會初始化數(shù)據(jù),我們實例化兩個對象,一個$jordan,一個$james,接著得到相應(yīng)的名稱,調(diào)用一些辦法測試下.最后銷毀$james對象,將其賦值為NULL.這時候析構(gòu)函數(shù)自動被調(diào)用.其代碼如下:
$jordan=new NbaPlayer('Jordan','198cm','98kg','Bull','23');
echo '球員名稱:'.$jordan->name.'<br/>';
echo $jordan->shoot();
echo '<hr/>';
$james = new NbaPlayer("James", "203cm", "120kg", "Heat", "6");
echo $james->name."<br/>";
echo $james->dunk();
echo '<hr/>';
$james=null;
echo 'James工具被銷毀了<br/>';
啟動瀏覽器而且瀏覽器該文件,其運行效果如圖1所示.
圖1
4.4 完整代碼
03-NbaPlayer.class.php具體代碼實現(xiàn)如下:
<?php
namespace day01;
/**
*
* @author King
* NbaPlayer類
*/
class NbaPlayer {
// 類的屬性的界說
public $name;
public $height;
public $weight;
public $team;
public $playerNumber;
/**
* 構(gòu)造函數(shù)一般用于初始化數(shù)據(jù)等
* 構(gòu)造函數(shù)在對象被實例化的時候自動挪用
* @param string $name
* @param string $height
* @param string $weight
* @param string $team
* @param string $playerNumber
*/
public function __construct($name,$height,$weight,$team,$playerNumber){
echo $name.'實例化對象的時候會自動挪用<br/>';
$this->name=$name;
$this->height=$height;
$this->weight=$weight;
$this->team=$team;
$this->playerNumber=$playerNumber;
}
/**
* 析構(gòu)函數(shù),用于清理法式中使用的系統(tǒng)資源,像關(guān)閉數(shù)據(jù)庫連接,釋放資源等
* 析構(gòu)函數(shù)在該對象不再使用的時候自動挪用
*/
public function __destruct(){
echo $this->name."析構(gòu)函數(shù)在銷毀對象或者對象不再使用的時候自動挪用<br/>";
}
//類的辦法的定義
/**
* 跑
*/
public function run(){
echo 'Runing...<br/>';
}
/**
* 控球
*/
public function dribble(){
echo 'Dribbing...<br/>';
}
/**
* 投籃
*/
public function shoot(){
echo 'Shooting...<br/>';
}
/**
* 扣籃
*/
public function dunk(){
echo 'Dunking...<br/>';
}
/**
* 過人
*/
public function pass(){
echo 'Passing...<br/>';
}
}
$jordan=new NbaPlayer('Jordan','198cm','98kg','Bull','23');
echo '球員名稱:'.$jordan->name.'<br/>';
echo $jordan->shoot();
echo '<hr/>';
$james = new NbaPlayer("James", "203cm", "120kg", "Heat", "6");
echo $james->name."<br/>";
echo $james->dunk();
echo '<hr/>';
$james=null;
echo 'James工具被銷毀了<br/>';
維易PHP培訓(xùn)學(xué)院每天發(fā)布《PHP中構(gòu)造函數(shù)和析構(gòu)函數(shù)的具體應(yīng)用及詳細(xì)方案+源碼》等實戰(zhàn)技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養(yǎng)人才。
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/6886.html