Главная > РНР: настольная книга программиста
<< Предыдущий параграф Следующий параграф >>
Пред.
След.
Макеты страниц

Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше

Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике

Глава 24. Функции работы с классами и объектами в PHP

Детально изучив классы, а в частности принципы построения, способы обращения и вызова, перейдем непосредственно к рассмотрению вопроса, связанного с функциями работы с классами. Прежде всего эти функции созданы для того, чтобы получать информацию о существующих классах и их объектах. Благодаря этим функциям вы можете получить название класса, которому принадлежит тот или иной объект, а также его свойства и методы. Данные функции могут определить не только принадлежность классу его объекта, но также и его происхождение, т. е. какой класс является объектным распространением класса. Мы рассмотрим сначала функции вызова методов пользователя, выдаваемых массивом параметров, а затем непосредственно основные функции классов и объектов. Благодаря такой последовательности изложения материала вы сможете понять принципы программирования классов и совершения операций над ними. Эта глава состоит из следующих тем:

• вызов методов пользователя, выдаваемых массивом параметров;

• вызов методов пользователя классов;

• проверка классов;

• возврат параметров класса;

• возврат массива параметров объекта;

• определение существующих классов;

• программирование при помощи функций работы с классами.

24.1. Вызов методов пользователя, выдаваемых массивом параметров

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

множество параметров, используют функцию call_user_func_array(). Эта функция позволяет задавать необходимое количество значений, используемых вызываемой функцией:

mixed call_user_func_array (string function_name [, array param])

Синтаксис наглядно показывает принцип работы функции. Строка параметра function_nams отвечает за название функции, вызов которой и будет производиться. Параметр param задается в качестве значений массива и производит передачу указанных здесь значений в вызываемую функцию. Это очень удобно. Также что касается возвращаемого значения функции, то оно фиксированное, т. е. постоянное. Например:

<?php

function check($var, $val) {

    echo "***Вводимое значение $var сравнивается с имеющимся: <br>";

    if ($var == "Sasha" & $val == "Sveta") {

        echo"Произошло совпадение с установленными параметрами: <br>";

        echo "$var<br>";

        echo "$val ";

    }

    else

        echo "Сравнение прошло успешно, подобных значений $var и $val нет ";

    echo "***n <br>";

}

$c = "Sveta";

$host = 5;

$me = "Igor";

call_user_func_array('check', array("car",$host)); call_user_func_array('check', array("Sasha", $c));

call_user_func_array('check', array("dog",$me));

?>

Пример подобран таким образом, чтобы как можно проще попытаться объяснить вам принципы работы данной функции. В начале выполнения данного скрипта происходит задание значений параметров переменным $с, $host, $me. В реальном

режиме работы данные параметры могут задаваться непосредственно через форму. Для облегчения поставленной задачи мы будем использовать такой метод. После этого производим три раза вызов функции с массивом значений, вносимых в имеющуюся функцию по имени check. После передачи необходимых значений этой функции работу по выполнению скрипта начинает производить функция check(). Проделав в строгой последовательности все операции, получаем следующий результат:

***Вводимое значение car сравнивается с имеющимся: Сравнение прошло успешно, подобных значений car и 5 нет***

значение Sasha сравнивается с Произошло совпадение с установленными параметрами: Sasha

Sveta ***

***Вводимое значение dog сравнивается с имеющимися:

Сравнение прошло успешно, подобных значений dog и Igor нет***

Думаем, в последовательности выводимого результата не составит труда разобраться.

Функция call_user_func_array() получила распространение в РНР 4—4.0.4.


ВНИМАНИЕ

Эта функция была добавлена к коду CVS после выпуска РНР 4.0.4pl1.


Аналогичную операцию проделывает другая, похожая на эту, функция call_user_func(). По принципу работы данные функции практически ничем не отличимы. Единственная особенность заключается в том, что последняя производит задание только одного значения параметра вызываемой функции. Функция call_user_func() имеет следующий синтаксис:

mixed call_user_func(string function_narne [, mixed parameter [, mixed... ] ])

Покажем работу данной функции на примере:

<?php

function check ($var) {

    print "Вам необходимо приобрести $var пиджак <br>";

}

call_user_func('check', "красный");

call_user_func('check', "синий");

?>

Из примера видно, как происходит задание передаваемого значения в вызываемую функцию check(). Последовательно заданные значения красный, синий в функцию check() дали следующий результат выполнения скрипта:

Вам необходимо приобрести красный пиджак

Вам необходимо приобрести синий пиджак

Функция call_user_func() также отличается от функции call_user_func_array() тем, что она получила распространение немного раньше, чем последняя.

Описанные в данном параграфе функции не работают с классами и объектами, но они помогут в изучении классов и будут неплохой опорой при написании скриптов.

Categories

1
Оглавление
email@scask.ru