《PHP中構造函數和析構函數的具體應用及詳細方案+源碼》要點:
本文介紹了PHP中構造函數和析構函數的具體應用及詳細方案+源碼,希望對您有用。如果有疑問,可以聯系我們。
構造函數和析構函數的應用
1.1 問題
通過構造函數初始化數據,具有構造函數的類會在每次創建新對象時先調用此辦法,所以非常適合在使用對象之前做一些初始化工作.
析構函數會在到某個工具的所有引用都被刪除或者當工具被顯式銷毀時執行.
2.2 計劃
構造函數和析構函數的語法如下:
//構造函數
function __construct([mixed $args[,…]]){
代碼段;
}
//析構函數
function __destruct(void){
代碼段;
}
3.3 步調
第一步,創建尺度的PHP文檔.
第二步,使用之前創立好的NbaPlayer類,在此基礎上添加構造函數,初始化數據,其代碼如下:
<?php
class NbaPlayer {
// 類的屬性的界說
public $name;
public $height;
public $weight;
public $team;
public $playerNumber;
/**
* 構造函數一般用于初始化數據等
* 構造函數在對象被實例化的時候自動挪用
* @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/>';
}
}
?>
第三步,添加析構函數,當對象不再使用的時候自動調用,一般用于清理法式中使用的系統資源.其代碼如下:
/**
* 析構函數,用于清理法式中使用的系統資源,像關閉數據庫連接,釋放資源等
* 析構函數在該對象不再使用的時候自動挪用
*/
public function __destruct(){
echo $this->name."析構函數在銷毀對象或者對象不再使用的時候自動挪用<br/>";
}
第四步,實例化類的時候傳入相應參數,這時候構造函數就會初始化數據,我們實例化兩個對象,一個$jordan,一個$james,接著得到相應的名稱,調用一些辦法測試下.最后銷毀$james對象,將其賦值為NULL.這時候析構函數自動被調用.其代碼如下:
$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具體代碼實現如下:
<?php
namespace day01;
/**
*
* @author King
* NbaPlayer類
*/
class NbaPlayer {
// 類的屬性的界說
public $name;
public $height;
public $weight;
public $team;
public $playerNumber;
/**
* 構造函數一般用于初始化數據等
* 構造函數在對象被實例化的時候自動挪用
* @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 __destruct(){
echo $this->name."析構函數在銷毀對象或者對象不再使用的時候自動挪用<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培訓學院每天發布《PHP中構造函數和析構函數的具體應用及詳細方案+源碼》等實戰技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養人才。
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/6886.html