생성자 PHP 고급 객체 구성 여러 생성자의 사용

WBOY
풀어 주다: 2016-07-29 08:47:59
원래의
850명이 탐색했습니다.

다음은 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 return "string"
}
public static function typelist($args){
return array_map(array("self","typeof"),$ args);//$args의 각 요소를 처리하기 위해 self::typeof 호출을 통한 배열 루프
}
공용 정적 함수 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'을 사용하는 메서드가 없습니다.".
"인수(% 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 함수 __construct() {//자신의 생성자
$args=func_get_args();//매개변수 가져오기
classUtil::callMethodForArgs($this,$args);//매개변수 처리 클래스의 메서드 호출
} ​​
public function constructor_(){ //매개변수가 비어 있는 경우
$this->timetamp=time()
}
public function construction_dateAndTime($datetime){//클래스 자체인 경우
$this-> ;timetamp=$datetime->getTimetamp();
}
공용 함수 constructor_number($timestamp){//숫자인 경우
$this->timetamp =$timestamp;
}
public function constructor_string($string){//시간 문자열인 경우
$this->timetamp=strtotime($string)
}
public function getTimetamp(){// 타임스탬프를 얻는 방법
return $this->timetamp;
}
}
?>


위의 방법은 다음과 같습니다. 다중 생성자 사용 사용 방법은 실제로 매우 간단합니다. 주로 매개변수를 처리합니다. 매개변수가 문자, 숫자, 클래스인지 여부에 관계없이 다양한 처리가 진행되어 코드의 유연성이 높아집니다.

위의 내용은 생성자 함수, PHP 고급 객체 생성, 생성자 함수의 내용을 포함한 다중 생성자의 사용을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿