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 :: Объясните плиз как работают функции
Покинул форум
Сообщений всего: 43
Дата рег-ции: Дек. 2012
Помог: 0 раз(а)
Здравствуйте!
Предлагаю сжеч на костре всех тех кто пишет тех.документации так как учить по ним нереально.
Например даже на этом сайте, в документации по функциям написано вот что
Вопрос -- зачем здесь теги <h4>,<h5>? Я что учу HTML? И вот такой мусор мешает усваивать нужный мне материал. Ну а дальше больше и я понял что это маразм и не стал дальше обучатся.
Поэтому прошу помочь мне и объяснить как же работает функция на самом простейшем примере. В частности меня интересует работа с аргументами, как указать аргументы я знаю, а вот как потом обработаные в теле функции аргументы вывести?
Например делаю так
В переменной $num содержится число 5 переданное через метод GET но выводится почему то 100 вместо 105.
Скажите что делаю не так, и если можете покажите на примере как это правильно делать.
Заранее спасибо
Toxa
Отправлено: 18 Декабря, 2012 - 20:55:11
Посетитель
Покинул форум
Сообщений всего: 352
Дата рег-ции: Окт. 2008
Помог: 8 раз(а)
[+]
ну правильно все выводится. Вы передаете в функцию переменную, которая нигде не определена и по-умолчанию равна нулю
$num=$_GET['num'];// определяем переменную $num. пусть в нее заносится 100
// здесь начинается определение функции
function one($param)// у функции один обязательный параметр
{
// локальная (внутренняя, не видна снаружи) переменная
$a=100;
// к локальной переменной прибавляем то,
// что передали в функцию как параметр
$sum=$a+$param;
// возвращаем результат
return$sum;
}
// здесь заканчивается определение функции
// здесь мы вызываем нашу функцию
// передавая ей параметром переменную, определенную вначле скрипта
// напомню, что $num у нас для примера равно 100
echo one($num);// внутри функции выполняются действия и выводится то что вернула функция.
// в нашем случае число 200
----- Чем больше узнаю, тем больше я не знаю.
arsen4ik
Отправлено: 18 Декабря, 2012 - 20:58:09
Новичок
Покинул форум
Сообщений всего: 43
Дата рег-ции: Дек. 2012
Помог: 0 раз(а)
Toxa пишет:
ну правильно все выводится. Вы передаете в функцию переменную, которая нигде не определена и по-умолчанию равна нулю
Понял) Это из за того что сама переменная находится за пределами тела функции.
А если например нет возможности создавать переменную в пределах функции как тогда поступать? Можно ли её сделать глобальной? (Добавление)
$num=$_GET['num'];// определяем переменную $num. пусть в нее заносится 100
// здесь начинается определение функции
function one($param)// у функции один обязательный параметр
{
// локальная (внутренняя, не видна снаружи) переменная
$a=100;
// к локальной переменной прибавляем то,
// что передали в функцию как параметр
$sum=$a+$param;
// возвращаем результат
return$sum;
}
// здесь заканчивается определение функции
// здесь мы вызываем нашу функцию
// передавая ей параметром переменную, определенную вначле скрипта
// напомню, что $num у нас для примера равно 100
echo one($num);// внутри функции выполняются действия и выводится то что вернула функция.
// в нашем случае число 200
Вот спасибо, теперь я понял)
DelphinPRO
Отправлено: 18 Декабря, 2012 - 21:06:30
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
arsen4ik пишет:
Можно ли её сделать глобальной?
это плохой стиль программирования. глобальных переменных следует избегать. а в функцию передавать как параметр.
если внутри функции нужно изменить внешнюю переменую, можно передать ее по ссылке
Покинул форум
Сообщений всего: 43
Дата рег-ции: Дек. 2012
Помог: 0 раз(а)
Так сделал, спасибо. Правда начал с примера по сложнее, сделал функцию которая если у браузера англ.язык переводит имя написанное на русском в транскрипт, передаю 2 аргумента
1) текст
2) язык
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.