В зависимости от вашего варианта использования вы можете передать экземпляр только функции:
class normalClass {
public function someMethod($object) {
$object->doSomething();
}
}
Если normalClass::someMethod()
может быть вызван несколькими различными $object
s, это может быть лучший вариант (вместо того, чтобы предоставить $object
всему экземпляру normalClass).
Но независимо от этого вы можете подумать о создании интерфейса для использования для типа типа :
interface ISomethingDoer {
public function doSomething();
}
class normalClass {
public function someMethod(ISomethingDoer $object) {
# Now PHP will generate an error if an $object is passed
# to this function which does not implement the above interface.
// ...
class superClass implements ISomethingDoer {
// ...