OOP参数值等于null

时间:2012-07-27 05:45:36

标签: php oop methods constructor null

我只是学习OOP的新手。到目前为止,我已阅读了很多文章,并尝试了一些教程。我只是想知道为什么在构造函数上声明参数时,某些值应该为空。

    function __construct($hostname = NULL, $username = NULL, $password = NULL, $database = NULL)
    {
        $this->hostname = !empty($hostname) ? $hostname : "";
        $this->username = !empty($username) ? $username : "";
        $this->password = !empty($password) ? $password : "";
        $this->database = !empty($database) ? $database : "";
    }
像这样。我真的很想知道。

3 个答案:

答案 0 :(得分:2)

将参数保持为NULL将使函数运行,即使在函数调用期间未传递所有参数。

例如,如果一个函数需要3个参数而你只提供了2个,而在函数定义中第三个参数没有被赋值为NULL,那么该函数将抛出一个错误。

答案 1 :(得分:1)

这是一个具有默认值的构造函数。如果参数未传递给_construct方法,它将为变量分配NULL值。所以这意味着没有必要将参数传递给这个构造函数。

答案 2 :(得分:1)

此语法是为了方便您启动类而不传递任何参数

function __construct($hostname = NULL, $username = NULL, $password = NULL, $database = NULL)

此签名告诉您可以选择传递参数,假设您的Class A{}具有此构造函数,您可以选择以下列方式启动它

$t = new A();
$t1 = new A('locathost','user1','pw1', $db_connection);
$t2 = new A('localhost');

这些所有初始化都是有效的。