Не могу вызвать глобальную функцию в теле класса

192
03 января 2018, 20:23

Есть некая условная функция:

function environment() {
  return 'developer';
}

И есть некий условный класс, в котором объявляется переменная:

сlass SomeClass {
  private $filename = "/var/www/" . environment() . "/engine/debugger.log";
}

Но почему-то при выполнении кода происходит ошибка:

Constant expression contains invalid operations

Почему я не могу вызывать глобальную функцию в теле класса и как мне достичь желаемого результата?

Answer 1

Ну, вроде бы подобные действия выполняются в конструкторе класса

function environment() {
    return 'developer';
}
class SomeClass {
    private $filename;
    public function __construct() {
        $this->filename = "/var/www/" . environment() . "/engine/debugger.log";
    }
}
$obj = new SomeClass;
var_dump($obj);
READ ALSO
Как добавить нужно условие MySQL?

Как добавить нужно условие MySQL?

Есть поиск на сайте по тегам:

200
Как получить данные от пользователя php

Как получить данные от пользователя php

Можно ли получить данные от пользователя, не используя html формы? Благодарю за ответы

194
Как вывести из MySQL значение в таблицу?

Как вывести из MySQL значение в таблицу?

Я сделал запрос к базе, получил массив значений, которые мне нужны, теперь хочу, чтобы мои значения были строками и при этом каждая в своей...

214