php多构造器的实例代码

发布时间:2020-08-09编辑:脚本学堂
本文介绍下,在php面向对象编程中,实现多个构造器的一例代码,感兴趣的朋友可以参考学习下。

本节内容:
php多构造器的类

php编程中,实例化一个类时,需要根据构造方法的参数个数进行初始化不用的内容,类似php函数或方法的可选参数。

来看例子:
 

复制代码 代码示例:
<?php
/**
* php 多构造器的类
* by www.jb200.com
*/
class A {  
    public function __construct() {  
        $a = func_get_args();  
        $i = func_num_args();  
        if (method_exists($this,$f='__construct'.$i)) {  
            call_user_func_array(array($this,$f),$a);  
        }  
    }
     
    public function __construct1($a1) {  
        echo '__construct with 1 param called: '.$a1.PHP_EOL;  
    }  
     
    public function __construct2($a1,$a2) {  
        echo '__construct with 2 params called: '.$a1.','.$a2.PHP_EOL;  
    }  
     
    public function __construct3($a1,$a2,$a3) {  
        echo '__construct with 3 params called: '.$a1.','.$a2.','.$a3.PHP_EOL;  
    }  
}  
$o = new A('sheep');  
$o = new A('sheep','cat');  
$o = new A('sheep','cat','dog');  
 
// 结果:  
// __construct with 1 param called: sheep  
// __construct with 2 params called: sheep,cat  
// __construct with 3 params called: sheep,cat,dog  
?>