2012-02-05 123 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"; 
} 
相关问题