在我试图了解更多关于 PHP 中的 OOP 的过程中。我已经多次遇到构造函数,根本无法再忽略它。在我的理解中,构造函数在我创建对象的那一刻被调用,这是正确的吗?
但是,如果我可以使用“普通”函数或方法作为它们的调用,我为什么需要创建这个构造函数呢?
干杯,基思
在我试图了解更多关于 PHP 中的 OOP 的过程中。我已经多次遇到构造函数,根本无法再忽略它。在我的理解中,构造函数在我创建对象的那一刻被调用,这是正确的吗?
但是,如果我可以使用“普通”函数或方法作为它们的调用,我为什么需要创建这个构造函数呢?
干杯,基思
构造函数允许您确保在尝试使用对象之前将其置于特定状态。例如,如果您的对象具有使用它所需的某些属性,您可以在构造函数中初始化它们。此外,构造函数允许一种有效的方式来初始化对象。
是的,在创建对象时调用构造函数。
构造函数有用的一个小例子是这个
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);
更新:一个问题还问为什么应该使用它,一个真实的例子是一个数据库类,你用用户名和密码以及要连接的表调用对象,构造函数将连接到该对象。然后,您就拥有了在该数据库中完成所有工作的功能。
构造函数的思想是为对象准备最初的一堆数据,这样它就可以按预期运行。
Just call a method
不是交易,因为您可能会忘记这样做,并且不能在语法中将其指定为“工作前必需”-因此您将获得“损坏”对象。
构造函数适用于各种各样的事情。他们在你的类中初始化变量。假设您正在创建一个 BankAccount 类。$b = 新银行账户(60);有一个构造函数,它给银行账户一个初始值。他们基本上在类中设置变量,或者他们也可以初始化其他类(继承)。
构造函数用于在创建对象时进行初始化。
您不希望在新创建的对象上调用任意方法,因为这违背了封装的想法,并且需要使用该对象的代码对其内部工作有固有的了解(并且需要更多的努力)。