Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вопрос по функциям.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
Carzil
Отправлено: 13 Декабря, 2009 - 11:28:26
Post Id



Гость


Покинул форум
Сообщений всего: 127
Дата рег-ции: Нояб. 2009  
Откуда: Россия, Москва


Помог: 0 раз(а)




Доброго времени суток. Я хочу создать пользовательскую функцию с необязательными параметрами. Как назначить необязательные параметры для моей функции??
(Вчера в google часа два искал)

(Отредактировано автором: 13 Декабря, 2009 - 11:30:41)



-----
Не помогли на форуме? Не растраивайтесь!
 
 Top
Ch_chov
Отправлено: 13 Декабря, 2009 - 11:34:21
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




PHP:
скопировать код в буфер обмена
  1. function foo ($bar = 'значение по умолчанию') {
  2.   // Код функции
  3. }
 
 Top
Carzil
Отправлено: 13 Декабря, 2009 - 11:35:11
Post Id



Гость


Покинул форум
Сообщений всего: 127
Дата рег-ции: Нояб. 2009  
Откуда: Россия, Москва


Помог: 0 раз(а)




Ch_chov, большое спасибо.


-----
Не помогли на форуме? Не растраивайтесь!
 
 Top
Champion Супермодератор
Отправлено: 13 Декабря, 2009 - 12:09:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




и то что вместе с ними
 
 Top
JustUserR
Отправлено: 13 Декабря, 2009 - 15:02:18
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Carzil Вообще про функции для работы с пользовательскими функциями можете почитать тут http://php.su/functions/?cat=funchand
И насколько мне известно в интерпртируемых языках PHP и JS аргументов функции может быть сколько угодно и вообще они не обязательны - а в Perl аргументы не указываются обычно вообще
А так все зависит от поставленной задачи


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Champion Супермодератор
Отправлено: 13 Декабря, 2009 - 15:26:28
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




В Си тоже можно написать функции с произвольным числом аргументов
 
 Top
JustUserR
Отправлено: 14 Декабря, 2009 - 16:09:08
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Champion Я-то знаю что это можно но в отличие от PHP и JS имеется два серьезных отличия Вопервых на PHP многоаргументные функции может даже тот очень слабо разбирается в языке - получил массив с типом данных mixed и радуйся (Да и число элементов известно) - а в C/C++ попробуйка объясни новичку что такое стек почему туда попали аргументы и как их оттуда извлечь Во-вторых в PHP не надо обозначивать обязательный начальный и конечный параметр для получения границ нужных данных в стеке


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
EuGen Администратор
Отправлено: 14 Декабря, 2009 - 16:16:45
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




JustUserR пишет:
а в C/C++ попробуйка объясни новичку что такое стек

Вот номер... а мы садились за программирование когда в теории уже понимали.. А то прочитал пару статей из гугла и все туда же.. программировать... где же их всех таких делают.. ? ...


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
JustUserR
Отправлено: 14 Декабря, 2009 - 16:20:04
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




EuGen Не знаю где их делают но видел что есть товарищи кто программирует на C++ и удивляются чем int* отличается от char* - ведь и тот и тот является 32-битным адресом - а вот то что при использовнии *ptr считываются блоки памяти разной длины в зависимости от типа указателя об этом вот не думают


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Hunter
Отправлено: 14 Декабря, 2009 - 16:51:21
Post Id



Частый гость


Покинул форум
Сообщений всего: 214
Дата рег-ции: Дек. 2009  
Откуда: Блага


Помог: 0 раз(а)




1.просто присвоить необязательным параметрам значения по умолчанию null
2.вообще их не указывать, просто объявляя переменные в теле функции при необходимости
 
 Top
JustUserR
Отправлено: 14 Декабря, 2009 - 17:43:36
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Hunter Так про это собственно и речь что в PHP и JS параметры функций можно вообще не указывать так как их можно получить из массива (В JS это arguments а в PHP это func_get_arg) - а вот в C/C++ простого решения нет


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Carzil
Отправлено: 14 Декабря, 2009 - 18:48:29
Post Id



Гость


Покинул форум
Сообщений всего: 127
Дата рег-ции: Нояб. 2009  
Откуда: Россия, Москва


Помог: 0 раз(а)




Хорошо, что мне пока не требуется С++!! Радость Радость


-----
Не помогли на форуме? Не растраивайтесь!
 
 Top
Hunter
Отправлено: 15 Декабря, 2009 - 10:06:22
Post Id



Частый гость


Покинул форум
Сообщений всего: 214
Дата рег-ции: Дек. 2009  
Откуда: Блага


Помог: 0 раз(а)




EuGen пишет:
Вот номер... а мы садились за программирование когда в теории уже понимали.. А то прочитал пару статей из гугла и все туда же.. программировать... где же их всех таких делают.. ? ...


не вижу ничего плохого в том что помимо теории практика тоже не остается без внимания..а собственно что плохого в том что человек забегает в практике дальше чем разобрался в теории, при большом желании всегда найдется человек готовый дать совет..
определенная часть нашего опыта представляет из себя чужой опыт Улыбка
 
 Top
Champion Супермодератор
Отправлено: 15 Декабря, 2009 - 10:20:55
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Hunter, JustUserR
EuGen пишет:
Вот номер... а мы садились за программирование когда в теории уже понимали..
. Тут не имелось в виду, что сначала надо понять ВСЮ теорию, а потом только заняться практикой. Я так думаю. Hello Worldы - то можно писать без знания стека Улыбка
И, JustUserR, согласись, что макросы из stdarg.h всё-таки прямыю работу со стеком от тебя прячут.
JustUserR пишет:
а в C/C++ попробуйка объясни новичку что такое стек почему туда попали аргументы и как их оттуда извлечь
Когда новичок начал писать функции, он, навреное, о представлении данных в памяти что-то слышал (Если он не
EuGen пишет:
А то прочитал пару статей из гугла и все туда же.. программировать
) и стек вполне в состоянии освоить.
 
 Top
Hunter
Отправлено: 15 Декабря, 2009 - 12:24:14
Post Id



Частый гость


Покинул форум
Сообщений всего: 214
Дата рег-ции: Дек. 2009  
Откуда: Блага


Помог: 0 раз(а)




Все верно.
p.s. еще немного и получится игра в ассоциации Улыбка
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB