Есть ли какая-либо конкретная причина, чтобы отрицать использование магических констант (таких как __DIR__
) в PHP, когда они находятся в статическом контексте? ООП POV, кажется, ничего плохого, поскольку __DIR__
является "глобальным", который не зависит от конкретного экземпляра:
class MyClass
{
protected static $options = array(
'key1' => 2,
'key2' => __DIR__ .'/mypic.png' // Triggers a syntax error
);
public function __construct() {}
}
РЕДАКТИРОВАТЬ разъяснение по вопросу. Меня интересует «почему», это невозможно. Например, говоря о статических вещах, любой знает, что это невозможно:
public static function getName() { return $this->name; }
, поскольку getName()
используется несколькими экземплярами, а $this->name
не имеет никакого смысла, потому что статическая функция «не знает», к какому экземпляру обращаться.