Волшебные методы РНР |
В состав языка РНР входит целый ряд так называемых "волшебных" методов, автоматически вызываемых в предопределенных местах программ. Имена всех этих методов начинаются с двойного знака подчеркивания ( ). Характерным тому примером служит метод $r = new JRegistry(); Еще одним характерным примером служит метод call (). Если этот метод определен в функции, то он выполняется в любой момент, когда вызывается недоступный метод. Недоступным может оказаться такой метод, который не определен в классе (или его родительских классах), или же такой метод, модификатор доступа которого (например, public function call($method, $args) { if (empty($args) ) { return; switch ($method) return $this->quote($args[0], isset($args[1]) ? $args[l] : true); break; return $this->quoteName($args[0]); break; Этот метод вызывается всякий раз, когда предпринимается попытка вызвать метод, несуществующий в данном классе. Имя этого метода указывается в качестве первого аргумента ($method) метода call (), а остальные его аргументы указываются в массиве $args. Сначала в данном методе проверяется наличие аргументов. У обоих методов, quote () и quoteName (), должны быть непременно аргументы, а следовательно, их вызов без аргументов недопустим. И если массив $args оказывается пустым, то происходит немедленный возврат из метода, и ничего другого в нем больше не делается. Затем выполняется оператор switch для выбора вызываемого метода по имени. Так, если указано имя ' q', то вызывается метод quote (), которому передается первый аргумент, а также логическое значение true, если имеется и второй аргумент. А если указано имя 'qn' или "nq', то вызывается метод quoteName (), которому передается первый аргумент. Таким образом, вместо имени метода quote () можно воспользоваться псевдонимом q (), а вместо имени метода quoteName () — псевдонимом qn () или nq (). Например, метод q () можно определить следующим образом: public function q($text, $escape = true) { return $this->quote($text, $escape); }
Понравился материал? Пригодилась информация? Плюсани в социалки!
|
Похожие новости | |
|