2011-11-25 100 views
2

中的构造函数,例如在C#中,您可以使用相同的方法名重载方法,但PHP呢?是否有可能重载PHP

class Database { 
    private $dsn; 
    private $host; 
    private $user; 
    private $password; 
    private $enckey; 

    function __construct($dbname, $host, $user, $password) { 
     $this->dsn = "mysql:dbname=" . $dbname . ';host=' . $host; 
     $this->user = $user; 
     $this->password = $password; 
} 
    function __construct($dbname, $host, $user, $password, $enckey) { 
     $this->dsn = "mysql:dbname=" . $dbname . ';host=' . $host; 
     $this->user = $user; 
     $this->password = $password; 
     $this->enckey = $enckey; 
    } 
} 
+1

编号PHP不支持以这种方式重载,因为它的动态性质 – knittl

+0

不幸的是,你不能,不。 – Chris

+0

为什么过载时可以指定默认值?而且PHP是动态输入的...... –

回答

7

这是什么意思?

class Database { 
    private $dsn; 
    private $host; 
    private $user; 
    private $password; 
    private $enckey; 

    function __construct($dbname, $host, $user, $password, $enckey = null) { 
     $this->dsn = "mysql:dbname=" . $dbname . ';host=' . $host; 
     $this->user = $user; 
     $this->password = $password; 
     $this->enckey = $enckey; 
    } 
} 
+0

当你使参数enckey = null时会发生什么? – Aaron

+2

它成为一个可选参数,默认值为null – AlienWebguy

相关问题