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

Глава 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() тем, что она получила распространение немного раньше, чем последняя.

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

<< Предыдущий параграф Следующий параграф >>
Оглавление