Новые книги

У вас есть стабильный бизнес – достаточно успешный и хорошо развивающийся, но вы почему-то до сих пор не заработали те миллионы долларов, которые планировали получить?

В чем же причина того, что вы работаете больше, а зарабатываете меньше, чем хотите? Какие секреты успешного бизнеса вы не применяете на практике? Сколько способов бесплатной рекламы вы не используете? Почему ваш бизнес не приносит вам в 5 раз больше денег, чем сейчас?

Существуют сотни приемов малобюджетного (партизанского) маркетинга, которые можно применить в вашем бизнесе. Ведь иногда достаточно внести совсем небольшие изменения, чтобы поднять свою прибыль на десятки процентов.

В результате изучения книги вы:

– узнаете, как повышать продажи даже тогда, когда у других компаний вашей отрасли они падают;

– будете знать, что и когда вам сделать для увеличения вашей прибыли;

– легко обгоните конкурентов и заберете себе их клиентов;

– перестанете терять своих клиентов и продажи, убрав «узкие места»;

– сможете продавать больше и дороже, повышая свою прибыль.

Настоятельно рекомендуется собственникам и руководителям малого и среднего бизнеса, директорам по маркетингу и развитию, руководителям отделов продаж, коммерческим и исполнительным директорам, индивидуальным предпринимателям.
С появлением новой науки открылась удивительная возможность с точностью предсказывать, что произойдет в будущем в самых разных областях жизни. Большие данные — это наша растущая способность обрабатывать огромные массивы информации, мгновенно их анализировать и получать порой совершенно неожиданные выводы. По какому цвету покраски можно судить, что подержанный автомобиль находится в отличном состоянии? Как чиновники Нью-Йорка определяют наиболее опасные люки, прежде чем они взорвутся? И как с помощью поисковой системы Google удалось предсказать распространение вспышки гриппа H1N1? Ключ к ответу на эти и многие другие вопросы лежит в больших данных, которые в ближайшие годы в корне изменят наше представление о бизнесе, здоровье, политике, образовании и инновациях.

Объявление Экспортируемых Функций

Учебник РНР
НазадГлава 32. Исходные Ресурсы. Обсуждение. Вперёд

Объявление экспортируемых функций

Для объявления функций, которые экспортируются (т.е. делаются доступными в PHP как новые внешние функции), Zend предоставляет набор макросов. Сэмпл объявления выглядит примерно так:

ZEND_FUNCTION(my_function);

ZEND_FUNCTION объявляет новую C-функцию, которая работает с внутренним API Zend'а. Это означает, что функция имеет тип void и принимает в качестве параметров INTERNAL_FUNCTION_PARAMETERS (другой макрос). В дополнение к этому, к имени функции делается префикс zif. Расширенная версия ранее сделанного определения будет выглядеть так:

void zif_my_function(INTERNAL_FUNCTION_PARAMETERS);

Расширение INTERNAL_FUNCTION_PARAMETERS даст:

void zif_my_function(int ht, zval *return_value, zval *this_ptr,
int return_value_used, zend_executor_globals *executor_globals);

Поскольку интерпретатор и ядро исполнителя отделены от главного пакета 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
Параметр Описание
htКоличество параметров, передаваемых в Zend-функцию. Вы не должны напрямую воздействовать на этот параметр; используйте ZEND_NUM_ARGS() для получения этого значения.
return_valueЭта переменная используется для передачи и возвращения значений вашей функции обратно в PHP. Доступ к этой переменной лучше выполнять с помощью предопределённых макросов. См. далее их описание.
this_ptrИспользуя эту переменную, вы можете получить доступ к объекту, в котором содержится ваша функция, если она используется внутри объекта. Используйте функцию getThis() для получения этого указателя.
return_value_usedЭтот флаг указывает, будет ли return-значение этой функции действительно использоваться вызывающим скриптом. 0 указывает, что return-значение не используется; 1 указывает, что вызывающий ожидает return-значение. Вычисление этого флага может быть сделано для проверки корректности использования функции и для оптимизации скорости, если возвращение значения требует затратных операций (например, см., как array.c использует это).
executor_globalsЭта переменная указывает на глобальные установки Zend-машины. Вам это может потребоваться, например, при создании новых переменных (подробнее об это чуть дальше). Глобалы исполнителя также могут вводиться в вашу функцию путём использования макроса ELS_FETCH().

Назад Оглавление Вперёд
Включения Header-файлов Вверх Объявление блока Zend-функции