Новые книги

Учебник состоит из двух разделов: теоретического и практического. В теоретической части учебника изложены основы современной информатики как комплексной научно-технической дисциплины, включающей изучение структуры и общих свойств информации и информационных процессов, общих принципов построения вычислительных устройств, рассмотрены вопросы организации и функционирования информационно-вычислительных сетей, компьютерной безопасности, представлены ключевые понятия алгоритмизации и программирования, баз данных и СУБД. Для контроля полученных теоретических знаний предлагаются вопросы для самопроверки и тесты. Практическая часть освещает алгоритмы основных действий при работе с текстовым процессором Microsoft Word, табличным редактором Microsoft Excel, программой для создания презентаций Microsoft Power Point, программами-архиваторами и антивирусными программами. В качестве закрепления пройденного практического курса в конце каждого раздела предлагается выполнить самостоятельную работу.
Что делает рекламу эффективной? Вопрос, который стоит и перед практиками, и перед теоретиками, и перед студентами, вынесен во главу угла седьмого издания прославленной «Рекламы» У. Уэллса, С. Мориарти и Дж. Бернетта.

Книга поможет разобраться в правилах планирования, создания и оценки рекламы в современных условиях. В ней рассматриваются все аспекты рекламного бизнеса, от объяснения роли рекламы в обществе до конкретных рекомендаций по ведению рекламных кампаний в различных отраслях, описания стратегий рекламы, анализа влияния рекламы на маркетинг, поведения потребителей, и многое другое. Вы познакомитесь с лучшими в мире рекламными кампаниями, узнаете об их целях и лежащих в их основе креативных идеях. Вы узнаете, как разрабатывались и реализовывались идеи, как принимались важные решения и с какими рисками сталкивались создатели лучших рекламных решений. Авторы изучили реальные документы, касающиеся планирования описанных в книге рекламных кампаний, разговаривали с людьми, занимавшимися их разработкой. Сделано это с одной целью: научить читателя тем принципам и практикам, что стоят за успешным продвижением.

Книга будет безусловно полезна студентам вузов, слушателям программ МВА, а равно и рекламистам-практикам. «Реклама: принципы и практика» – это книга, которую следует прочитать, чтобы узнать все об эффективной рекламе.

7-е издание.

Вызов Пользовательских Функций

Учебник РНР
Назад Приложение E. Расширение РНР Вперёд

Вызов пользовательских функций

Для вызова пользовательских функций из встроенной/внутренней функции вы должны использовать функцию call_user_function().

call_user_function() возвращает SUCCESS при успешном выполнении и FAILURE, если функция не найдена. Вы должны проверять это return-значение! Если возвращено SUCCESS, вы сами отвечаете за уничтожение retval pval (или возвращение его как return-значения вашей функции). Если возвращено FAILURE, значение retval будет undefined, и вы обязаны не использовать его.

Все внутренние функции, вызывающие пользовательские функции, обязаны быть reentrant (?). Помимо всего прочего это означает, что они обязаны не использовать глобальные или статические переменные.

call_user_function() принимает 6 аргументов:

HashTable *function_table

Это хэш-таблица, в которой функция просматривается.

pval *object

Это указатель на объект, в котором функция вызывается. Это должен быть NULL, если вызывается глобальная функция. Если это не NULL (т.е. имеется указатель на объект), аргумент function_table игнорируется и вместо этого берётся из хэша объекта. Объект *может* быть модифицирован функцией, которая вызывается в нём (эта функция будет иметь к нему доступ через $this). Если по каким-то причинам вам это не нужно, отправляйте копию объекта.

pval *function_name

Имя вызываемой функции. Обязано быть pval типа IS_STRING с соответствующими установленными значениями в function_name.str.val и в function_name.str.len.
function_name модифицируется с помощью call_user_function() - оно конвертируется в нижний регистр. Если необходимо сохранить регистр символов, отправляйте копию имени функции.

pval *retval

Указатель на pval-структуру, в которой сохраняется return-значение вызванной функции. Структура должна быть предварительно размещена - call_user_function() сама НЕ размещает её.

int param_count

Количество параметров, передаваемых функции.

pval *params[]

Массив указателей на значения, которые передаются функции как аргументы; первый аргумент имеет смещение 0, второй - 1, и т.д. Этот массив является массивом указателей на pval'ы; Указатели отправляются as-is/как-есть в функцию, что означает, что, если функция модифицирует свои аргументы, оригинальные значения изменяются (передача по ссылке). Если вам не нужно такое поведение, передавайте копию.


НазадОглавление Вперёд
Расширение PHP ВверхСообщение об ошибке