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
Форумы портала PHP.SU :: Версия для печати :: Вопрос по функциям.
Форумы портала PHP.SU » PHP » Программирование на PHP » Вопрос по функциям.

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

1. Carzil - 13 Декабря, 2009 - 11:28:26 - перейти к сообщению
Доброго времени суток. Я хочу создать пользовательскую функцию с необязательными параметрами. Как назначить необязательные параметры для моей функции??
(Вчера в google часа два искал)
2. Ch_chov - 13 Декабря, 2009 - 11:34:21 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. function foo ($bar = 'значение по умолчанию') {
  2.   // Код функции
  3. }
3. Carzil - 13 Декабря, 2009 - 11:35:11 - перейти к сообщению
Ch_chov, большое спасибо.
4. Champion - 13 Декабря, 2009 - 12:09:56 - перейти к сообщению
и то что вместе с ними
5. JustUserR - 13 Декабря, 2009 - 15:02:18 - перейти к сообщению
Carzil Вообще про функции для работы с пользовательскими функциями можете почитать тут http://php.su/functions/?cat=funchand
И насколько мне известно в интерпртируемых языках PHP и JS аргументов функции может быть сколько угодно и вообще они не обязательны - а в Perl аргументы не указываются обычно вообще
А так все зависит от поставленной задачи
6. Champion - 13 Декабря, 2009 - 15:26:28 - перейти к сообщению
В Си тоже можно написать функции с произвольным числом аргументов
7. JustUserR - 14 Декабря, 2009 - 16:09:08 - перейти к сообщению
Champion Я-то знаю что это можно но в отличие от PHP и JS имеется два серьезных отличия Вопервых на PHP многоаргументные функции может даже тот очень слабо разбирается в языке - получил массив с типом данных mixed и радуйся (Да и число элементов известно) - а в C/C++ попробуйка объясни новичку что такое стек почему туда попали аргументы и как их оттуда извлечь Во-вторых в PHP не надо обозначивать обязательный начальный и конечный параметр для получения границ нужных данных в стеке
8. EuGen - 14 Декабря, 2009 - 16:16:45 - перейти к сообщению
JustUserR пишет:
а в C/C++ попробуйка объясни новичку что такое стек

Вот номер... а мы садились за программирование когда в теории уже понимали.. А то прочитал пару статей из гугла и все туда же.. программировать... где же их всех таких делают.. ? ...
9. JustUserR - 14 Декабря, 2009 - 16:20:04 - перейти к сообщению
EuGen Не знаю где их делают но видел что есть товарищи кто программирует на C++ и удивляются чем int* отличается от char* - ведь и тот и тот является 32-битным адресом - а вот то что при использовнии *ptr считываются блоки памяти разной длины в зависимости от типа указателя об этом вот не думают
10. Hunter - 14 Декабря, 2009 - 16:51:21 - перейти к сообщению
1.просто присвоить необязательным параметрам значения по умолчанию null
2.вообще их не указывать, просто объявляя переменные в теле функции при необходимости
11. JustUserR - 14 Декабря, 2009 - 17:43:36 - перейти к сообщению
Hunter Так про это собственно и речь что в PHP и JS параметры функций можно вообще не указывать так как их можно получить из массива (В JS это arguments а в PHP это func_get_arg) - а вот в C/C++ простого решения нет
12. Carzil - 14 Декабря, 2009 - 18:48:29 - перейти к сообщению
Хорошо, что мне пока не требуется С++!! Радость Радость
13. Hunter - 15 Декабря, 2009 - 10:06:22 - перейти к сообщению
EuGen пишет:
Вот номер... а мы садились за программирование когда в теории уже понимали.. А то прочитал пару статей из гугла и все туда же.. программировать... где же их всех таких делают.. ? ...


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

 

Powered by ExBB FM 1.0 RC1