2011-11-16 131 views
-3

我是PHP OOP的新手,我认为public $var__construct()完全一样。 有什么区别?我应该使用哪一个?

+0

苹果和橘子在这里:$ var是一个属性 - 一个变量; __construct()是一种方法 - 执行某些操作的函数。 – Anonymous

+0

也许可以解释为什么你认为他们是“一样的”? –

+0

因为我使用__construct($ var){$ this-> var = $ var}来创建一个像public $ var这样的属性的变量。 – LotusH

回答

6

它们是完全不同的东西:一个声明一个类属性,另一个是类构造函数的名称。

这里没有“一个或那个”这样的东西。

我建议您重新阅读关于classes and objects的所有信息,在您的PHP书籍或手册中。

0

public $var不是构造函数,其中__construct()是。我希望你的意思是别的。

正如manual指出,有2种构造函数:

class Bar { 
    public function Bar() { 
     // "old" style constructor 
    } 
} 

class Foo { 
    function __construct() { 
     // new style constructor 
    } 
} 
0
public $var; 

声明一个变量,将是外界访问。

function __construct() { /* Do stuff */ } 

定义“魔术”构造函数方法。当创建新实例时(即创建new对象),将调用此方法。该方法接受和处理创建新对象时传递的任何参数。

关键的区别是一个定义了一个变量(属性),另一个定义了一个函数(方法)。