Maison  >  Article  >  développement back-end  >  Analyse de cas d'utilisation de plusieurs constructeurs dans la construction d'objets avancée PHP

Analyse de cas d'utilisation de plusieurs constructeurs dans la construction d'objets avancée PHP

黄舟
黄舟original
2017-07-02 09:58:221240parcourir

La construction d'objets est un sujet important dans la conception de programmation PHP orientée objet . Dans le cas le plus simple, le constructeur ordinaire suffit, mais si vous souhaitez réaliser une conception plus complexe, le constructeur peut devenir difficile à gérer

Voici un paragraphe L'exemple de code démontre le principe de l'utilisation de plusieurs constructeurs pour la construction d'objets dans la construction d'objets avancée PHP.

<?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; 
} 
} 
?>


En fait, c'est très simple. L'essentiel est de traiter les paramètres. Que les paramètres soient des caractères, des nombres ou des classes, différents traitements sont avancés, ce qui augmente la taille de. le code.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn