Приднестровская поддержка XOOPS
Подобно методу-получателю и методу-установщику, которые позволяют динамически обрабатывать доступ к свойствам в PHP-сценариях, метод __call() служит для того, чтобы организовать хранилище вызовов методов в объекте. При получении вызова метода, который не был определен в классе, по возможности вызывается метод __call(). Прототип этого метода выглядит следующим образом:
function __call($method, $arguments);
где $method — это строка, соответствующая вызванному методу, а $arguments — индексированный массив, содержащий параметры, передаваемые этому методу. Подобно методу-получателю и методу-установщику, метод __call() полезно использовать в тех случаях, когда весь список функций не доступен вплоть до начала выполнения сценария. Как вариант, метод __call() можно использовать для того, чтобы создать универсальный метод для обработки вызовов недействительных методов в PHP-сценариях, как показано в листинге 21.
class ParentClass {
function __call($method, $params) {
echo "Метод $method не существует!\n";
}
}
class ChildClass extends ParentClass {
function myFunction() {
/* Логика функции */
}
}
$inst = new ChildClass();
$inst->nonExistentFunction();
Во время выполнения этого кода будет вызван метод, который до этого не был определён. Однако вместо того чтобы генерировать неустранимую ошибку, недействительный вызов инициирует вызов метода __call(), в результате чего у вас будет возможность исправить ошибку.
Отправитель | Нити |
---|
11 пользователь(ей) активно (4 пользователь(ей) просматривают Инструкции)
Участников: 0 Гостей: 11 далее... |