Урок 10. PHP — Функции
Функция это просто блок кода, который имеет название и входные параметры для обработки, который может быть выполнен, когда нам это нужно. Может показаться, что толку от них мало, но, поверьте мне, когда вы поймете и научитесь использовать функции, вы сможете сэкономить кучу времени и написать код, который будет гораздо более удобным для чтения!
Хотя тема функций часто воспринимается как сложная для начинающих программистов, но их в любом случае нужно знать.Возможно это займет много времени, но не сдавайтесь, ведь функции очень помогут вам в карьере программиста.
Создаем свою первую php функцию
Когда вы создаете функцию, нужно сначала дать ей имя, например, myCompanyName. Лучше всего называть функции понятными названиями, которые будут иметь смысл, чтобы не запутаться. Это же касается и переменных.
Синтаксис для создания функции довольно очевидный и логичный. Во-первых, вы должны сказать PHP, что вы хотите создать функцию. Это можно сделать, введя ключевое слово function и ваше имя функции и некоторые другие вещи (о которых мы поговорим чуть позже).
Вот как выглядит объявление функции myCompanyName:
<?php function myCompanyName(){ } ?>
Примечание: Название функции может начинаться со знака «_», но не с цифры!
Это лишь каркас нашей функции, а внутри него мы можем поместить любой код, который захотим. При вызове функции он будет выполняться. Видите в фигурных скобках в приведенном выше примере «{}»? Эти скобки определяют, где должен быть наш код функции. Открывающая фигурная скобка «{» говорит PHP, что код функции начинается, а закрывающая фигурная «}» говорит PHP, что наша функция окончена!
Давайте добавим в нее что-то простенькое, например echo.
<?php function myCompanyName(){ echo "Вы находитесь на блоге myblaze.ru <br />"; } ?>
Вот и все, довольно просто, правда? Теперь научимся вызывать нашу функцию.
Вызов готовой функции php
Теперь, когда вы закончили кодирование простейшей функции, пришло время ее испытать. Ниже приведен простой скрипт. Давайте сделаем вот что: объявим свою функцию и используем ее.
function myCompanyName(){ echo "Вы находитесь на блоге myblaze.ru <br />"; } echo "Привет всем! <br />"; myCompanyName(); echo "Рад вас видеть! <br />";
Хотя это был простой пример, важно понимать, что любая невнимательность может привести к ошибке. Когда вы создаете функцию, следуйте этим простым рекомендациям.
- Всегда начинайте ваши функции с ключевым словом function.
- Помните, что ваш код функции должны быть между «{» и «}».
- Когда вы вызываете функцию, убедитесь, что пишете ее имя правильно.
Функции с параметрами
Еще одна полезная возможность состоит в том, что функции вы можете вызывать с параметрами, то есть передавать внутрь ее кода дополнительную информацию. Наша первая функция myCompanyName не очень-то и полезна, потому что все что она умеет, это печатать одну и ту же строку.
Однако, если бы мы использовали параметры, то мы могли бы добавить некоторые дополнительные фишки в нашу функцию! Параметр появляется скобках «()» и выглядит как обычная переменная PHP. Давайте создадим новую функцию, которая создает пользовательское приветствие основанное на имени человека, которое мы передадим в качестве параметра.
<?php function sayHello($Name){ echo "Hello there ". $Name . "!<br />"; } ?>
Теперь когда мы будем вызывать функцию sayHello, то в скобках обязательно должны указывать параметр (имя), так как функция объявлена с параметром и игнорировать его нельзя.
Если мы хотим указывать несколько параметров, то просто перечисляем их при объявлении функции через запятую и все, ничего больше не требуется.
Возвращение значения функцией php
Помимо того, что вы имеете возможность передать функции информацию, она так же может и сама вернуть значение. Но помните, функция может возвращать только одно значение, хотя это может быть что угодно: целое число, вещественное, булевое значение, как вы пожелаете!
Как она возвращает значение? Лучше всего разобраться на примере. Объявим функцию с параметрами, а затем присвоим результат некоторой переменной, вот так:
<?php function mySum($numX, $numY){ $total = $numX + $numY; return $total; } $myNumber = 0; echo "Перед использованием функции, myNumber = ". $myNumber ."<br />"; $myNumber = mySum(3, 4); // Сохраняем результат вызова функции mySum в переменную $myNumber echo "После вызова функции, myNumber = " . $myNumber ."<br />"; ?>
Чтобы присвоить функции значение — в нее добавляется оператор return, видите его? Результат сложения двух чисел хранится в переменной $total, а с помощью return $total это значение передается самой функции. Затем мы просто присваиваем его переменной $myNumber после вызова функции mySum с двумя параметрами 3 и 4 (это числа которые следует сложить).
Практикуйтесь, разбирайтесь и у вас все получится!
← Switch | Содержание | Массивы →
Комментарии:
Спасио,все достбупно и понятно.
:) Доступно
Здравствуйте. Прошу помощи. Понял с этого урока все, но вот зачем добавлять return? Можете пояснить поподробнее. Заранее спасибо
Darius, функция всегда возвращает значение, а чтобы это значение возвратить — как раз и нужен return :)
Спасибо что ответили. Оно возвращает значение. Вот например: $total = $numX + $numY;
return $total;
и на что она возвращает? Понял что тотал теперь суммирует две эти цифры, а ретурн что сделает? Что он вернет? Какое значение? Извините что я тупой, но очень прошу поясните ((.
Darius вы вовсе не тупой а начинающий. В данном случае $total
сумируе значения, а чтобы вывести результат нужно как раз таки
вызвать return который передаёт значение $total в функцию mySum() если шо пишите на мыло halk-hero@mail.ru
Fred, ааа. Понял. Огромное спасибо!!! А я то думал что return делает вот так: return 2; и он нам покажет 1 так на вернулись на один назад )) Еще раз спасибо
Darius, в задвании вопросов нет ничего плохого, более того, это показывает , что вы действительно хотите разобраться в вопросе. Fred все верно написал, return присваивает функции значение, получается что функция как переменная только она не хранит значение а просто получает его от return и тут же передает переменной которая эту функцию вызывала, в данном случае: $myNumber = mySum(3, 4);
$myNumber вызывает функцию mySum(), внутри которой mySum получает значение от return и тут же отдает его переменной $myNumber.
myblaze, спасибо и вам!
Почему то в браузере выдает такое
Перед использованием функции, myNumber = 0
Fatal error: Function name must be a string in Z:\home\localhost\www\site1\index.php on line 13
В чем проблема ?
Артëм, здраствуйте! Пожалуйста покажите код который вы написали. Проверте синтаксис на строке 13, всë ли верно записано, не забывайте про точку с запятой после каждой команды!!
такой вопрос
что лучше использовать если нужно вывести данные игрока в его профиль на сайте например есть запрос по api
«all»: {
«spotted»: 6541,
«hits»: 28486,
«battle_avg_xp»: 403,
«draws»: 87,
«wins»: 3058,
«losses»: 3651,
«capture_points»: 11091,
«battles»: 6796,
«damage_dealt»: 3088630,
«hits_percents»: 57,
«damage_received»: 6054671,
«shots»: 50407,
«xp»: 2737008,
«frags»: 2897,
«survived_battles»: 1309,
«dropped_capture_points»: 2339
},
из которого мне нужно только «battles» как это можно реализовать не подскажите?
Спасибо!Годные уроки.
День добрый! Не могу опять одну вещь: зачем при возвращении значения функции нужно присваивать его переменной? Нельзя просто написать название функции? Есть какие-то преимущества в данном действии? Буду благодарна за разъяснения
Дарья, если присвоить значение переменной, то его потом можно использовать где угодно без повторных расчетов. Если везде вставлять функцию, то она каждый раз будет заново выполняться, что не рационально.
Подскажите, обязательно ли надо было писать $myNumber = 0;
Спасибо огромное за ваш труд. Vielen Danke.
Зачем через return возвращать значение, если можно этому значению присвоить переменную и отдать ее на исполнение в другую функцию?????
Переменные, которые объявлены внутри функции — локальные. Соответственно, сослаться на них можно только из тела этой функции. Поэтому значение возвращаем через return
Скажите пож. Зачем здесь точки конкатенции
myNumber = «. $myNumber .