В PHP 7.2 добавили возможность расширения типа параметра
https://wiki.php.net/rfc/parameter-no-type-variance<?php
class ArrayClass {
public function foo(array $foo) { /* ... */ }
}
// This RFC proposes allowing the type to be widened to be untyped aka any
// type can be passed as the parameter.
// Any type restrictions can be done via user code in the method body.
class EverythingClass extends ArrayClass {
public function foo($foo) { /* ... */ }
}
Получается в моем примере не указывать тип и делать проверку внутри метода