| |||||||||||||||||
Объявление экспортируемых функцийДля объявления функций, которые экспортируются (т.е. делаются доступными в PHP как новые внешние функции), Zend предоставляет набор макросов. Сэмпл объявления выглядит примерно так:
ZEND_FUNCTION объявляет новую C-функцию, которая работает с внутренним API Zend'а. Это означает, что функция имеет тип void и принимает в качестве параметров INTERNAL_FUNCTION_PARAMETERS (другой макрос). В дополнение к этому, к имени функции делается префикс zif. Расширенная версия ранее сделанного определения будет выглядеть так:
Расширение INTERNAL_FUNCTION_PARAMETERS даст:
Поскольку интерпретатор и ядро исполнителя отделены от главного пакета PHP, привлекается второй API, определяющий наборы макросов и функций: Zend API. Поскольку Zend API сейчас выполняет сравнительно мало работы, которую раньше делал PHP, многие функции PHP были уменьшены до псевдонимов для вызова в Zend API. Рекомендуем использовать Zend API везде, где это возможно, так как старый API сохранён только для обеспечения обратной совместимости. Например, типы zval и pval идентичны. zval это определение Zend'а; pval это определение PHP (в действительности pval это, в настоящее время, псевдоним zval). Так как макрос INTERNAL_FUNCTION_PARAMETERS это Zend-макрос, вышеприведённое определение содержит zval. При написании кода вы всегда должны использовать zval для обеспечения соответствия новому Zend API. Список параметров этого объявления очень важен; вы должны их запомнить (см. Таблицу 9.1). Рисунок 32-1. Таблица 9.1. Zend-параметры функций, вызываемых из PHP
| |||||||||||||||||
|