<?php
class a
{
function __construct(stdClass $i = null) {
}
}
class b extends a
{
function __construct(array $i = null) {
}
}
Ошибки нет
<?php
class a
{
function x(stdClass $i = null) {
}
}
class b extends a
{
function x(array $i = null) {
}
}
Ошибка есть.
На конструктор не распространяются принципы Лисков?
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации