首頁 >後端開發 >php教程 >建構子 PHP高階物件建構 多個建構函數的使用

建構子 PHP高階物件建構 多個建構函數的使用

WBOY
WBOY原創
2016-07-29 08:47:59870瀏覽

以下就用一段程式碼範例來示範PHP高階物件建構中的使用多個建構函式進行物件建構的原理。

複製程式碼 程式碼如下:


class classUtil {//這是一個參數處理的類別
public static function typeof($var){ _ob​​of ($var) get_class($var);//如果是對象,取得類別名稱
if (is_array($var)) return "array";//如果是數組,則返回"array"
if (is_numeric($var)) return " numeric";//如果是數字,回傳"numeric"
return "string";//字串回傳"string"
}
public static function typelist($args){
return array_map(array("self"," typeof"),$args);//陣列迴圈透過呼叫self::typeof處理$args中的每個元素
}
public static function callMethodForArgs($object,$args,$name="construct"){
$ method=$name."_".implode("_",self::typelist($args));//implode 是把陣列元素用"_"連接成一個字串
if (!is_callable(array($ object,$method))){//is_callable()函數測試$object::$method是不是可呼叫的結構
echo sprintf("Class %s has no methd '$name' that takes".
"arguments ( %s)",get_class($object),implode(",",self::typelist($args)));
call_user_func_array(array($object,$method),$args);//call_user_func_array函數呼叫$ object::$method($args)
}
}
}
class dateAndTime {
private $timetamp;
public function __construct(){//自己的建構子=f/arg$s(Mid$args(M. classUtil::callMethodForArgs($this,$args);//呼叫參數處理類別的方法
}
public function construct_(){//參數為空的時候
$this->timetamp=time();
}
public function construct_dateAndTime($datetime){//為類別本身的時候
$this->timetamp=$datetime->getTimetamp();
}
public function construct_number($timestamp){//為數字的時候
$this($timestamp){//為數字的時候
$this ->timetamp=$timestamp;
}
public function construct_string($string){//為時間型字串時候
$this->timetamp=strtotime($string);
}
public function getgettamp(){///取得時間戳記的方法
return $this->timetamp;
}
}
?>


以上方法,就說明了多個構造函數的使用方法,其實,很簡單,主要是對參數進行了處理,不管是參數是字符,還是數字,還是類,都先進了不同的處理,這樣就加大了代碼的靈活性。

以上就介紹了建構函式 PHP高階物件建構 多個建構函式的使用,包括了建構函式方面的內容,希望對PHP教學有興趣的朋友有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn