Переход к PHP5 Страница 5. Типизация пареметров функций на уровне классов
|
Страница 5 из 20
Типизация пареметров функций на уровне классов Для параметров функций можно задавать класс, объект которого может быть передан по этому параметру. Во время работы скрипта, конструкция function myFunction(MyClass $obj) { } равнозначна конструкции function myFunction($obj) { if (!($obj instanceof MyClass || $obj == null)) { die('Argument 1 must be an instance of ClassName'); } } При этом instanceof распостраняется не только на имя класса, но и на всех его предков и реализуемые интерфейсы. Например, следующий код выполнится без ошибок: interface Editable { function edit(); } abstract class View { abstract function createView(); } class NewClass extends View implements Editable { function createView() { } function edit() { } function createMyView(View $obj) { } function doEdit(Editable $obj) { } } $c = new NewClass(); $c->createMyView($c); $c->doEdit($c); |