Когда вы присваиваете class переменные, подобные этим, они фактически не могут быть переменными. То есть они должны быть буквальным значением, например строкой, или константой, как во втором примере, который сработал.
Хорошо:
public $foo = 123;
public $bar = "hello";
public $blah = SOME_CONSTANT;
Не в порядке:
public $foo = 123 + 45;
public $bar = "hello"
. "world";
public $blah = some_function();
Что вам, вероятно, нужно, это экземпляр переменных. Они инициализируются в конструкторе класса, который является функцией, которая запускается всякий раз, когда вы создаете новый экземпляр этого класса.
class Foo {
public $bar,
$baths;
public function __construct($blah) {
$this->bar = $_SESSION['bar'];
$this->baths = $blah;
}
}