PHP – значение от переменной до постоянной

Я изучаю ООП в PHP, и я хочу поместить значение из переменной в константу класса. Как я могу это сделать?

Это мой код (не работает!):

class Dir { const ROOT = $_SERVER['DOCUMENT_ROOT']."project/"; function __construct() { } } 

Есть ли какое-либо решение, как взять значение из переменной, добавить строку и поместить ее в постоянную – в ООП?

Related of "PHP – значение от переменной до постоянной"

На странице руководства http://www.php.net/manual/en/language.oop5.constants.php вы можете найти следующее:

 The value must be a constant expression, not (for example) a variable, a property, a result of a mathematical operation, or a function call. 

Константа не может иметь переменных.

Я предлагаю вам не зависеть от $_SERVER['DOCUMENT_ROOT'] , вместо этого вы можете определить ROOT самостоятельно.

Например, у вас есть config.php в корневом config.php документа, вы можете сделать

 define('ROOT', __DIR__.'/'); // php version >= 5.3 define('ROOT', dirname(__FILE__).'/'); // php version < 5.3 

затем используйте ROOT вместо этого.

Почему бы не установить его в свой __construct() . Технически, это то, для чего оно есть.

 class Dir { public function __construct() { self::ROOT = $_SERVER['DOCUMENT_ROOT']."project/"; } } 

Я предлагаю вам это решение, потому что вы хотите использовать ООП, и все должны быть внутри класса. Поэтому, поскольку прямое использование const или static var невозможно, я бы использовал статическую функцию:

 class Dir { public static function getRoot() { return $_SERVER['DOCUMENT_ROOT'] . 'project/'; } } 

и вы можете использовать его как

 Dir::getRoot();