Пример 1: использование метода

Код:

class A {

public function __construct() {

print __METHOD__. '<br />';

}

public function __call($function, $params) {

print ">> Function {$function} was called with params [ ".

implode($params, ', ').

" ]<br />";

if($function == 'someReallyBigFunctionName')

print '<< Cool! someReallyBigFunctionName was called! <br />';

print __METHOD__. '<br />';

}

public function __destruct() {

print __METHOD__. '<br />';

}

}

$a = new A();

$a->f("it's", "mtuci", "courses of", "programming");

$a->someReallyBigFunctionName();

Результат:

A::__construct
>> Function f was called with params [ it's, mtuci, courses of, programming ]
A::__call
>> Function someReallyBigFunctionName was called with params [ ]
<< Cool! someReallyBigFunctionName was called!
A::__call
A::__destruct

Теперь рассмотрим практические аспекты реализации этого метода. Чтобы не плодить множество функций с, возможно, приблизтельно одинаковой логикой или общей смысловой частью, их можно поместить в магический метод __call, реализовать их распознавание при помощи оператора switch и выводить результаты для каждой функции. Кроме того, можно реализовать отладку ошибок с его помощью.

__get, __set, __isSet, __toString

Я не буду сейчас заострять внимание на этих методах. Если у вас есть желание, вы можете прочесть об этом на официальном сайте php.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: