使用构造函数的好处?

时间:2008-12-31 18:44:04

标签: php oop constructor

我试图在PHP中学习更多有关OOP的知识。我几次遇到构造函数,根本不能忽略它。在我的理解中,构造函数在我创建对象的那一刻被调用,这是正确的吗?

但是,如果我可以使用“普通”函数或方法作为被调用者,为什么我需要创建这个构造函数呢?

欢呼声, 基思

5 个答案:

答案 0 :(得分:28)

构造函数允许您在尝试使用对象之前确保将对象置于特定状态。例如,如果您的对象具有使用它所需的某些属性,则可以在构造函数中初始化它们。此外,构造函数允许以有效的方式初始化对象。

答案 1 :(得分:10)

是的,在创建对象时调用构造函数。

构造函数有用的一个小例子就是这个

class Bar
{
    // The variable we will be using within our class
    var $val;

    // This function is called when someone does $foo = new Bar();
    // But this constructor has also an $var within its definition,
    // So you have to do $foo = new Bar("some data")
    function __construct($var)
    {
        // Assign's the $var from the constructor to the $val variable 
        // we defined above
        $this->val = $var
    }
}

$foo = new Bar("baz");

echo $foo->val // baz

// You can also do this to see everything defined within the class
print_r($foo);

更新: 一个问题也问为什么应该使用它,一个现实生活中的例子是一个数据库类,你可以使用用户名和密码以及连接到的表来调用对象,构造函数将连接到该对象。然后你就可以在该数据库中完成所有工作。

答案 2 :(得分:6)

构造函数的想法是为对象准备初始数据束,因此它可以表现得很好。

Just call a method不是一个交易,因为你可以忘记这样做,并且这不能在语法中指定为“工作前需要” - 所以你将得到“破碎”的对象。

答案 3 :(得分:2)

构造函数适用于各种各样的事情。它们在您的类中初始化变量。假设您正在创建BankAccount类。 $ b = new BankAccount(60);有一个构造函数,为银行帐户提供初始值。他们基本上在类中设置变量,或者他们也可以初始化其他类(继承)。

答案 4 :(得分:2)

构造函数用于在创建对象时完成初始化。

您不希望在新创建的对象上调用任意方法,因为这违背了封装的想法,并且需要使用此对象的代码具有其内部工作的固有知识(并且需要更多努力)。