PHP-Nuke по-русски    Главная
Начальная
страница
 Клуб
Русский
клуб
 Разделы
Тематические
разделы
 Ссылки
Каталог
сайтов
 Файлы
Каталог
программ
 Школа
Практические
занятия
 Форум
Форумы
поддержки
Учебник РНР
Назад Вперёд

Глава 36. Возвращаемые значения

Возвращение значений из ваших функций в PHP было кратко описано в предыдущем разделе; в этом разделе дана информация о деталях. Return-значения передаются через переменную return_value, которая передаётся в вашу функцию как аргумент. Аргумент return_value состоит из zval-контейнера (см. ранее обсуждение интерфейса вызова), который вы можете модифицировать. Этот контейнер всегда размещается самостоятельно, поэтому вам не нужно запускать в нём MAKE_STD_ZVAL. Вместо этого вы можете выполнять прямой доступ к его членам.

Чтобы облегчить возвращение значений из функций и предотвратить нестыковки при доступе к внутренним структурам zval-контейнера, имеется набор предопределённых макросов (как всегда). Эти макросы автоматически устанавливают соответствующие тип и значение, как описано в Таблицах 9.14 и 9.15.

Рисунок 36-1. Таблица 9.14. Предопределённые макросы для возвращаемых из функций значений
Примечание: Макрос в Таблице 9.14 автоматически возвращает из вашей функции.

МакросОписание
RETURN_RESOURCE(resource)Возвращает ресурс.
RETURN_BOOL(bool)Возвращает Boolean.
RETURN_NULL()Не возвращает ничего (значение NULL).
RETURN_LONG(long)Возвращает long.
RETURN_DOUBLE(double)Возвращает double.
RETURN_STRING(string,duplicate)Возвращает строку. Флаг duplicate указывает, должна ли строка дублироваться с использованием estrdup().
RETURN_STRINGL(string, length, duplicate) Возвращает строку специфицированной длины; иначе поведение аналогично RETURN_STRING. Этот макрос, однако, быстрее и безопасен в двоичном режиме.
RETURN_EMPTY_STRING()Возвращает пустую строку.
RETURN_FALSEВозвращает Boolean false.
RETURN_TRUEВозвращает Boolean true.
Рисунок 36-2. Таблица 9.15. Предопределённые макросы
для установки Return-значения функции
Примечание: Макросы в Таблице 9.15 только устанавливают return-значение;
они не выполняют возврат из вашей функции.

МакросыОписание
RETVAL_RESOURCE(resource)Устанавливает return-значение специфицированного ресурса.
RETVAL_BOOL(bool)Устанавливает return-значение специфицированного Boolean.
RETVAL_NULLУстанавливает return-значение NULL.
RETVAL_LONG(long)Устанавливает return-значение специфицированного long.
RETVAL_DOUBLE(double)Устанавливает return-значение специфицированного double.
RETVAL_STRING(string, duplicate)Устанавливает return-значение специфицированной строки и дублирует его во внутренней памяти Zend, если нужно (см. также RETURN_STRING).
RETVAL_STRINGL(string, length, duplicate) Устанавливает return-значение специфицированной строки и форсирует длину как length (см. также RETVAL_STRING). Этот макрос быстрее и безопаснее и должен использоваться, если длина строки известна.
RETVAL_EMPTY_STRINGУстанавливает return-значение - пустую строку.
RETVAL_FALSEУстанавливает return-значение - Boolean false.
RETVAL_TRUEУстанавливает return-значение - Boolean true.

Сложные типы, такие как массивы и объекты, можно возвращать с помощью array_init() и object_init(), а также соответствующих хэш-функций в return_value. Поскольку эти типы не могут быть сконструированы из обычной информации, для них нет предопределённых макросов.


НазадОглавление Вперёд
Дублирование содержимого переменной: конструктор Copy ВверхПечать информации

© RigaNet - Internet studio
For Web site issues, contact the Web master.

Rambler's Top100 Рейтинг@Mail.ru RigaNet