ホームページ >php教程 >php手册 >PHP の高度なオブジェクト構築と複数のコンストラクターの使用

PHP の高度なオブジェクト構築と複数のコンストラクターの使用

WBOY
WBOYオリジナル
2016-06-13 12:02:26833ブラウズ

以下は、PHP の高度なオブジェクト構築におけるオブジェクト構築に複数のコンストラクターを使用する原理を示すコード例です。

コードをコピー コードは次のとおりです:


class classUtil {//これはパラメータ処理 Class
public static function typeof($var){
if (is_object($var)) return get_class($var);//オブジェクトの場合はクラス名を取得
if ( is_array($var) ) return "array";//配列の場合、return "array"
if (is_numeric($var)) return "numeric";//数値の場合、return "numeric "
return "string"; //String return "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("クラス %s には、取得するメソッド '$name' がありません。"
"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 functionconstruct_(){ //パラメータが空の場合
$this->timetamp=time();
}
public functionconstruct_dateAndTime($datetime){//クラスそのものの場合
$this->gt ;timetamp=$datetime->getTimetamp();
}
public functionconstruct_number($timestamp){//数値の場合
$this->timetamp =$timestamp;
}
public functionconstruct_string($string){//時刻文字列の場合
$this->timetamp=strtotime($string);
public function getTimetamp(){// タイムスタンプを取得するメソッド
return $this->timetamp;
}
}
?>

上記のメソッドは次のようになります。複数のコンストラクターの使用 使用方法は実際には非常に単純で、主にパラメーターを処理します。パラメーターが文字、数値、クラスのいずれであっても、さまざまな処理が行われ、コードの柔軟性が向上します。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。