Maison >développement back-end >tutoriel php >Analyse de cas d'utilisation de plusieurs constructeurs dans la construction d'objets avancée PHP
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 '$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(){//自身的构造函数 $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!