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

О проекте

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

MySQL

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

Хостинг

Другое








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

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

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

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

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

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

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

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

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

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

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

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



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





Учебник РНР
НазадГлава 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