Обратите внимание, что отчет об ошибке немного отключен, так как PHP будет регистрировать это сообщение каждый раз, когда у вас уровень ошибки E_STRICT
(или, совсем недавно, независимо от уровня ошибки, если вы установили собственный обработчик ошибок).
Правила видимости PHP ясно демонстрируют, что ребенку не хватает возможности видеть личных членов своего родителя, что, я сомневаюсь, удивляет всех.Если ребенок не может видеть методы своего родителя, я не понимаю, как он может повиноваться их определениям.
Я лично считаю, что ошибка была помечена как поддельная, без объяснения причин, по которой она не было реальным недостатком (поскольку он неочевиден, и я не смог найти упоминаний об этом в документации), это немного неправильно, но да.Кроме того, я придерживаюсь мнения 2669 в zend_compile.c
, которое на самом деле должно читаться следующим образом:
} else if (child->prototype &&
(EG(error_reporting) & E_STRICT || EG(user_error_handler))) {
..., что позволило бы избежать появления ошибки, когда метод родителябыл отмечен как частныйУчитывая, что у вас всегда есть возможность не регистрировать E_STRICT
, и это на самом деле не оказывает негативного влияния, я полагаю, это не имеет большого значения.Я точно не понимаю, как это могло быть преднамеренно, но я также не являюсь разработчиком движка PHP.