使用PHP高级对象构建多个构造函数
复制代码代码如下所示:
< PHP
这是一个classutil { / /参数处理类
公共静态函数类型($变量){
如果(is_object($变量))返回get_class($变量); / /如果对象,获得类的名字
如果(is_array($变量)返回阵列); / /如果它是一个数组,返回的数组
如果(is_numeric($变量)返回数字); / /如果是数字,返回的数字
返回字符串;
}
公共静态函数类型表($ args){
返回array_map(阵列(自
}
Public static function callMethodForArgs ($object, $args, $name= construct) {
$方法= $名称。_(内爆。_,自::类型表($ args); / /崩溃)是数组元素与_连接成一个字符串
如果(!is_callable(阵列(元对象,$法))){ / / is_callable()函数测试对象:美元:美元不可调用构造方法
回声sprintf(类%s无法name'that美元以。
参数(%s)
call_user_func_array(阵列(元对象,方法,和美元)美元); / / call_user_func_array函数调用对象的方法:美元:美元(合一)
}
}
}
类dateandtime {
私人timetamp美元;
公共功能(__construct){ / /它的构造函数
($ args = func_get_args / /获得);参数
classutil::callmethodforargs($,$ args); / /方法调用参数处理类
}
公共功能(construct_){ / /参数是空的
美元-> timetamp =时间();
}
公共功能construct_dateandtime($ DateTime){ / /类本身
美元-> timetamp = $ DateTime -> gettimetamp();
}
公共功能construct_number($时间戳){ / /数字时间
美元-> timetamp = $时间戳;
}
公共功能construct_string($string){ / /时的时间字符串类型
美元-> timetamp = strtotime($字符串);
}
公共功能(gettimetamp){获取时间戳 / /方法
返回timetamp美元->;
}
}
>
上述方法说明了多个构造函数的使用。事实上,它非常简单,主要是处理参数,参数是否是字符、数字或类,它们具有高级的不同处理,这增加了代码的灵活性。