0

我刚刚开始尝试使用 OO PHP,但是有一个基本原理我不太了解,也没有找到太多关于它的信息。

当创建一个__construct()方法时,你为什么希望它是public,当它专门为该类构造一个构造函数时?你什么时候想在类外调用构造函数?

对我来说,使用受保护的构造函数似乎是一种好习惯,对吧?

我知道这是基本的面向对象的东西,但我没有直接找到任何信息,特别是针对构造函数。

4

2 回答 2

5

( __constructnot "__constructor") 方法是在您这样做时调用的方法new MyClass(),即在您实例化类时。构造函数必须public,除非您只想从自身内部实例化类。如果是后者,您至少需要一个public static可以调用的其他方法,该类将在其中实例化自身,否则您无法创建它的任何实例。

于 2012-10-13T09:41:47.673 回答
3

每当您创建一个类的新实例时,都会调用构造函数。如果构造函数不是公共的,则没有其他代码可以创建该类的实例。

因此,如果要创建类的实例,请将构造函数公开。

构造函数始终只是定义它的类的一部分,我不明白您所说的“当它专门是该类的构造函数时”是什么意思。


澄清:

调用构造函数的唯一方法是使用new Class(). 没有其他方法可以调用它。__construct是一种魔术方法,没有办法显式调用魔术方法。

于 2012-10-13T09:40:12.280 回答