類常量使用const
關鍵字。你不使用define函數來定義它們。就像這樣:
class Config {
const TEST = "This is a constant";
}
// then use it:
var_dump(Config::TEST);
在PHP中,你不能動態地設定一個恆定的值,但你可以得到一個公共靜態變量類似的行爲。即。
class Config2 {
public static $test = null;
public static function initialize()
{
self::$test = "This is not a constant";
}
}
// Then use like
Config2::initialize();
var_dump(Config2::$test);
缺點是,沒有任何來自外部類設置數值停止其他代碼。如果你需要防範這一點,你應該使用getter函數方法。例如。
class Config3 {
private static $_test = null;
public static function initialize()
{
self::$_test = "This is not a constant, but can't be changed outside this class";
}
public static function getTest()
{
return self::$_test;
}
}
// Then use like
Config3::initialize();
var_dump(Config3::getTest());
你是說,一個靜態屬性? – Andre 2011-04-19 01:42:24
是的,我想用不同的設置進行初始化並在外面訪問它們,使用這個靜態功能 – Ibu 2011-04-19 01:43:53
您的代碼將定義一個全局常量。 Class :: constants是一個分析時語法結構,不能在以後定義。 – mario 2011-04-19 01:49:39