Я хотел бы сделать что-то вроде этого: class Circle { const RADIUS_TO_CIRCUMFERENCE = M_PI * 2; // Not allowed private $radius; public function __construct( $radius ) { $this->radius = $radius; } … public function getCircumference() { return $this->radius * self::RADIUS_TO_CIRCUMFERENCE; } } Но я не могу создать константу класса из такого выражения: Значение должно быть […]
Я знаю, что вы можете создавать глобальные константы в терминах друг друга с помощью конкатенации строк: define('FOO', 'foo'); define('BAR', FOO.'bar'); echo BAR; напечатает «foobar». Тем не менее, я получаю сообщение об ошибке, пытающееся сделать то же самое с использованием констант класса. class foobar { const foo = 'foo'; const foo2 = self::foo; const bar = […]