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

О проекте

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

MySQL

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

Хостинг

Другое








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

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

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

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

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

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

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

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

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

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

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

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



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





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