Php 使用构造函数的好处?
在我尝试学习PHP中OOP的过程中。我已经多次遇到构造函数,不能再忽略它了。在我的理解中,构造函数在我创建对象时被调用,这是正确的吗 但是如果我可以使用“普通”函数或方法作为它们的调用,为什么我需要创建这个构造函数呢 干杯,Php 使用构造函数的好处?,php,oop,constructor,Php,Oop,Constructor,在我尝试学习PHP中OOP的过程中。我已经多次遇到构造函数,不能再忽略它了。在我的理解中,构造函数在我创建对象时被调用,这是正确的吗 但是如果我可以使用“普通”函数或方法作为它们的调用,为什么我需要创建这个构造函数呢 干杯, Keith是在创建对象时调用构造函数 构造函数有用性的一个小例子是 class Bar { // The variable we will be using within our class var $val; // This function i
Keith是在创建对象时调用构造函数 构造函数有用性的一个小例子是
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);
更新:
还有一个问题问为什么要使用它,一个真实的例子是一个数据库类,在这个类中,您使用用户名、密码和要连接的表调用对象,构造函数将连接到该对象。然后,您就拥有了在该数据库中完成所有工作的函数。构造函数允许您在尝试使用该对象之前确保该对象处于特定状态。例如,如果对象具有使用它所需的某些属性,则可以在构造函数中初始化它们。此外,构造函数允许一种有效的方法来初始化对象。构造函数的思想是为对象准备一组初始数据,这样它就可以正常工作
只要调用一个方法就可以了,因为你可以忘记这样做,而且这不能在语法中指定为“工作前所需”——因此你会得到“断开的”对象。构造函数适用于各种事情。它们初始化类中的变量。假设您正在创建BankAccount类$b=新银行账户(60);具有为银行帐户提供初始值的构造函数。它们基本上在类内设置变量,也可以初始化其他类(继承)。构造函数用于在创建对象时完成初始化
您不希望在新创建的对象上调用任意方法,因为这违背了封装的思想,并且需要使用此对象的代码具有其内部工作的固有知识(并且需要更多的努力)。感谢您的回复。如果可能的话,你能评论每一行让我更好地理解吗?谢谢你的解释,但你无法理解你的真实生活的例子,你能解释更多吗??提前谢谢你。另外,看看哪个问同样的问题。哈哈,太好笑了。这是我完全忘记的问题。问我的问题时,我在看相关的问题,什么也没看到。很抱歉,我不能删除这个问题,因为答案太多了。还剩2年,什么都没有改变)。例如,在创建对象后调用setter方法根本不会违反封装。构造函数用于定义对象按预期行为所需的属性/参数。@netcoder True,但如果构造函数涉及(例如)连接到数据库,则您不一定期望调用代码必须调用方法来完成此操作,因为您可能甚至不想让调用代码知道对象从何处获取信息。说得好,though@Keith:引用Wikipedia(我通常不这么做,但在这种情况下写得很好):“[构造函数]的任务是初始化对象的数据成员并建立类的不变量,如果不变量无效,则失败。正确编写的构造函数将使对象保持有效状态。”@网络编码员:是的,我在写完我的答案后马上看了那里——来测试我自己;-)既然没有明显的区别,既然人们回答(不仅仅是复制粘贴)的网站也是如此,我就离开我的网站,即使它的英文写得更差;-)