2010-07-20 27 views
2

開始使用OOP爲什麼不能使用property而不是__construct?

原因:

class user 
{ 
    private $pdo; 

    function __construct() 
    { 
     $this->pdo = singleton::get_instance()->PDO_connection(); 
    } 

... 
} 

能正常工作。但是這個:

class user 
{ 
    private $pdo = singleton::get_instance()->PDO_connection(); 

... 
} 

這不起作用。錯誤parse error, expecting ','' or ';'' in ...

第二個變體有什麼問題?

+0

'[PHP] [OOP基礎知識]'在標題不是必需的,這是標籤的用途。 – Wrikken 2010-07-20 01:25:33

+0

請注意,問題標題中的[php] [oop基礎知識]是不必要的和多餘的。這就是使用標籤的一點。有我擁有更多代表的人最終會編輯標題,但我認爲你應該知道以備將來參考。 – 2010-07-20 01:26:34

回答

3

Properties第一段的最後一句中PHP OOP documentation

類的成員變量稱爲 「屬性」。您也可以看到它們使用其他術語(如 「屬性」或「字段」)引用它們,但對於此參考文獻的 目的,我們將使用 「屬性」。它們由 使用關鍵字public定義, 受保護或私有,隨後是 正常變量聲明。這 聲明可能包括 初始化,但這種 初始化必須是一個常量 值 - 也就是說,它必須能夠被 在編譯時評估和 爲了不得 依賴於運行時信息是評估。

換句話說,這個語句返回數據庫處理程序一個恆定值,因此不會在編譯時間:

singleton::get_instance()->PDO_connection(); 
0

在使用函數的聲明中不能分配類屬性。標量值,常量(雖然不是當前類的常量)和數組。

相關問題