因爲你不能在一個定義或類常量中有一個數組我想我會爲我的項目創建一個配置數據的抽象類,它需要比簡單的值更多的結構。PHP數組意外的行爲
起初,我以爲我會嘗試像以下,而這導致了一個語法錯誤,在第6行:
<?php
abstract class Config
{
static private
$paths = array (
'classes' . _DS . 'cmsItems',
'classes' . _DS . 'dbdrivers',
'classes' . _DS . 'core'
);
static public function getPaths()
{
return self::$paths;
}
}
?>
然後我試圖定義的getter,而不是私人財產中的靜態數組。
<?php
abstract class Config
{
static public function getPaths()
{
static $paths = array (
'classes' . _DS . 'cmsItems',
'classes' . _DS . 'dbdrivers',
'classes' . _DS . 'core'
);
return $paths;
}
}
?>
這只是導致第7行
一個語法錯誤,但如果我刪除了static關鍵字...
<?php
abstract class Config
{
static public function getPaths()
{
$paths = array (
'classes' . _DS . 'cmsItems',
'classes' . _DS . 'dbdrivers',
'classes' . _DS . 'core'
);
return $paths;
}
}
?>
這似乎很好地工作(除了現在正在創建數組每次函數運行時,這對我來說都有點浪費)。
任何人都可以解釋這裏發生了什麼嗎?
(僅供參考,_DS在別處定義並且是簡單的別名DIRECTORY_SEPARATOR)