2012-02-05 93 views
1

我正在創建數據庫的一個常量鏡像,所以我不再有錯字的問題。PHP:是否可以在類中使用類?靜態回報

我希望能夠實現的是在結構文件夾中將它槽掉。像:

echo Db::categorie::id; // should return Cat_ID 

這是可能的,或類似的東西?現在它會發生錯誤,因爲這是不可能的。 下面的代碼:

class Db // database 
{ 
    /*@var $categorie DbCatergorie*/ 
    const categorie = DbCatergorie; 
} 

class DbCatergorie // table in database 
{ 
    Const id = "Cat_ID"; 
    Const name = "Cat_Name"; 
    Const imgId = "Cat_Img_ID"; 
    Const volgorde = "Cat_Volgorde"; 
} 

THX Matthy

+4

類常量不能是變量,屬性,數學運算的結果,或者函數調用...或類。你最好定義一個靜態屬性。 – 2012-02-05 22:47:47

+0

使用靜態屬性並在構造中設置。 – smoqadam 2012-02-06 05:34:33

回答

2

這是不可能的。
類常量必須是常量。甚至不支持常量表達式。

manual

該值必須是一個常量表達式,而不是(例如)一個變量,屬性,數學運算的結果,或一個函數調用。

// Wrong! 
class C{ 
    const c = 54*34; 
} 

如果你擔心錯字,我的建議是,

class Db // database 
{ 
    Const CAT_ID = "Cat_ID"; 
    Const CAT_NAME = "Cat_Name"; 
    Const CAT_IMG_ID = "Cat_Img_ID"; 
    Const CAT_VOLGORDE = "Cat_Volgorde"; 
} 
相關問題