П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 5565 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 7865 раз(а).

Учебник HTML.
Просмотров 4617 раз(а).

Руководство по PHP5.
Просмотров 1184 раз(а).

Хостинг через призму DNS.
Просмотров 6459 раз(а).

Подборка текстов стандартных документов.
Просмотров 57234 раз(а).

Учебник PHP - Самоучитель
Просмотров 4842 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 10893 раз(а).

Внешние атаки...
Просмотров 6504 раз(а).

Учебник PHP.
Просмотров 3943 раз(а).

SSI в примерах.
Просмотров 964 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





Учебник РНР
НазадГлава 33. Приём аргументов Вперёд

Старый способ запроса аргументов
(не рекомендуется)

Не рекомендуемый API разбора параметров: Этот API не рекомендуется использовать. Вместо него имеется новый ZEND API разбора параметров.

После проверки количества аргументов вам необходимо получить доступ к самим аргументам. Это делается с помощью zend_get_parameters_ex():
zval **parameter;

if(zend_get_parameters_ex(1, &parameter) != SUCCESS)
    WRONG_PARAM_COUNT;

Все аргументы хранятся в контейнере zval, на который нужно указать дважды. Показанный код пытается получить один аргумент и сделать его доступным нам через указатель parameter.

zend_get_parameters_ex() принимает как минимум два аргумента. Первый аргумент это количество получаемых аргументов (которое должно совпадать с количеством аргументов, с которыми функция вызывается; именно поэтому важно проверять корректность синтаксиса вызова). Второй аргумент (и все последующие аргументы) это указатели на указатели на указатели на zval'ы. (Малопонятно, не правда ли?) Все эти указатели необходимы, поскольку Zend работает внутренне с **zval; для уточнения местного **zval в нашей функции, zend_get_parameters_ex() требует указатель на него.

return-значением zend_get_parameters_ex() может быть SUCCESS или FAILURE, указывая на успех или неудачу процессинга аргументов. Неудача чаще всего связана с некорректным количеством специфицированных аргументов, и тогда вы вы должны выйти с WRONG_PARAM_COUNT.

Для получения более одного аргумента вы можете использовать похожий код:
zval **param1, **param2, **param3, **param4;

if(zend_get_parameters_ex(4, &param1, &param2, &param3, &param4) != SUCCESS)
    WRONG_PARAM_COUNT;

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


Назад Оглавление Вперёд
Получение аргументов Вверх Работа с переменным количеством аргументов/ параметров-опций


Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru