Как упоминалось выше, вы не можете определять переменные класса, используя операторы, если значение должно быть динамическим, тогда назначение должно происходить в функции.
При использовании констант может быть полезно использовать константы класса вместо определения ваших констант в глобальной области видимости.Они определены с помощью ключевого слова const
и доступны с помощью оператора self::
.
class foo
{
const BAR = 'test';
public $baz;
public function __construct()
{
$this->baz = self::BAR . 'bat';
}
}
Константы класса также могут быть доступны вне экземпляра статически: foo::BAR
, поэтому вы можете использовать константы из классов в других контекстах, но они не будут автоматически включены в глобальную область видимости как константа, определенная с помощью define
.
$some_var = foo::BAR;
echo $some_var;
// output: test