Поскольку у вас не может быть массива в определении или константе класса, я подумал, что создам абстрактный класс для данных конфигурации для моего проекта, который должен иметь больше структур, чем простых значений.
Сначала я думал, что попробую что-то вроде следующего, но это привело к синтаксической ошибке в строке 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;
}
}
?>
Затем я попытался определить статический массив внутри геттера вместо частного свойства.
<?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)