Не вдаваясь в вопрос, следует ли мне использовать подсказку типа, может ли кто-нибудь сказать мне, есть ли способ избежать того, чтобы PHP выкидывал ошибку при передаче дочернего класса в конструктор, который набирает подсказки для родителя? Например:Родительский/дочерний тип, намекающий в php-конструкторе?
class Headed extends Image { ... }
class Dimension {
function __construct(Image $image, $arg1, $arg2){ ... }
}
PHP дает мне:
PHP Error 4096: Argument 1 passed to Dimension::__construct() must be an instance of Image, instance of Headed given
Объект типа Направился, очевидно, также будет изображением, так как дочерний класс, есть какой-то способ Перефразируя мой конструктор так что это дает тип подсказки, но позволяет детям?
Если это связано с использованием PHP 5.2.5 вместо более поздней версии, я сожалею о том, что беспокою всех.
Проверьте свой код здесь: http://3v4l.org/. Он скажет вам, является ли это проблемой версии или нет. –
Возможно, если у вас есть интерфейс, скажите «ImageInterface», где у вас есть класс Image, реализующий ImageInterface, таким образом вы намекаете вместо этого на изображение, но с ImageInterface? – Sarel
Я использовал 3v4l.org, как @JohnConde, и он работает для меня: http://3v4l.org/30dkZ (на всех версиях PHP 5.x) – gd1