Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > ООП ошибка $_SERVER['HTTP_HOST'];


Автор: mmmoi 5.1.2013, 22:07
Внутри класса обьявляю  static public $DOMAIN = $_SERVER['HTTP_HOST'];

При вызове файла в браузере выдает ошибку типа

Parse error: syntax error, unexpected T_VARIABLE in C:\Users\Public\www\htdocs\as\model\config.php on line 9

Что делать?

Если из этой переменной удаляю  $_SERVER['HTTP_HOST'] ,то ошибки проподают.

Автор: Ripper 5.1.2013, 22:17
http://stackoverflow.com/questions/9029511/learning-oo-coding-with-php-static-expressions-but-php-manual-says-everythi Второй ответ
Нельзя статической переменной присвоить значение которое нужно вычислять на этапе выполнения программы

Добавлено через 1 минуту и 35 секунд
Т.е. даже public static $myvar = 1+1; нельзя писать

Добавлено через 3 минуты и 56 секунд
Как вариант можно написать 
Код

public static $domain = null;

public function __construct() {
    self::$domain = $_SERVER['HTTP_HOST'];
}


И потом уже ей пользоваться. Но не уверен что есть смысл, по сути статическая переменная нужна чтобы к ней можно было обращаться когда объект не создан, но ведь $_SERVER доступен в любой момент

Автор: mmmoi 5.1.2013, 22:36
Пишу внутри класса
const DOMAIN = $_SERVER['HTTP_HOST'];

выдает ту же ошибку.

Пишу 
public $DOMAIN = $_SERVER['HTTP_HOST']; - выдает ту же ошибку.

Или так внутри класса писать нельзя?

Автор: skyboy 5.1.2013, 22:42
Цитата(mmmoi @  5.1.2013,  21:36 Найти цитируемый пост)
public $DOMAIN = $_SERVER['HTTP_HOST']; 

ну, вот это-то точно без проблем вынести в конструктор
и второе: что мешает объявить статический метод, который будет возвращать это твое НТТР_ХОСТ?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)