Лучший способ обеспечить это - создать вырожденный интерфейс с именем Object
.Вырожденный интерфейс означает, что у него нет определенных методов.
interface Object {
// leave blank
}
Тогда в ваших базовых классах вы можете реализовать Object
.
class SomeBase implements Object {
// your implementation
}
Теперь вы можете вызывать свою функцию так, как вам хочетсяto
function myFunc (Object $obj);
myFunc($someBase);
Если вы передадите какой-либо объект, который унаследован от вашего интерфейса Object
, подсказка этого типа пройдет.Если вы передадите массив, int, string и т. Д., Подсказка типа потерпит неудачу.