Heim  >  Artikel  >  Backend-Entwicklung  >  Anwendungsfallanalyse mehrerer Konstruktoren in der erweiterten PHP-Objektkonstruktion

Anwendungsfallanalyse mehrerer Konstruktoren in der erweiterten PHP-Objektkonstruktion

黄舟
黄舟Original
2017-07-02 09:58:221191Durchsuche

Das Erstellen von Objekten ist ein wichtiges Thema im PHP-objektorientierten Programmierdesign. Im einfachsten Fall reicht der gewöhnliche Konstruktor aus, aber wenn Sie einen komplexeren Entwurf ausführen möchten, kann es schwierig werden, den Konstruktor zu verwalten

Hier ist ein Absatz, der das Codebeispiel demonstriert das Prinzip der Verwendung mehrerer Konstruktoren für die Objektkonstruktion in der erweiterten PHP-Objektkonstruktion.

<?php 
class classUtil {//这是一个参数处理的类 
public static function typeof($var){ 
if (is_object($var)) return 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 &#39;$name&#39; 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(){//自身的构造函数 
$args=func_get_args();//获取参数 
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->timetamp=$timestamp; 
} 
public function construct_string($string){//为时间型字符串时候 
$this->timetamp=strtotime($string); 
} 
public function getTimetamp(){//获取
时间戳
的方法 
return $this->timetamp; 
} 
} 
?>


Tatsächlich ist es sehr einfach, die Parameter zu verarbeiten. Unabhängig davon, ob es sich bei den Parametern um Zeichen, Zahlen oder Klassen handelt, ist die Verarbeitung unterschiedlich die Flexibilität.

Das obige ist der detaillierte Inhalt vonAnwendungsfallanalyse mehrerer Konstruktoren in der erweiterten PHP-Objektkonstruktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn