Функции в PHP
Если говорить простым языком, то функция — это блок кода, который может быть именован и вызван повторно. Иногда функцию ещё называют подпрограммой. Мы привыкли, что обычной переменной можно присвоить число, строку или массив, а затем получить его обратно, обратившись к значению по имени переменной. Функции устроены похожим образом. Это тоже своего рода переменная, только вместо строки или числа в ней хранится блок кода, который вызывается при использовании этой «переменной».
Функция — очень мощный инструмент повторного использования кода. Создав свою функцию и записав туда необходимый код, вы сможете вызывать и использовать его столько раз, сколько необходимо. В противном случае пришлось бы копировать и вставлять фрагмент кода каждый раз, когда он понадобится.
Чтобы упростить себе работу, мы можем оформить в виде функции некоторую часть кода, которая используется в сценарии несколько раз. Затем, вместо копирования и вставки этой части кода, будет достаточно только вызывать эту функцию, как если бы мы обращались к переменной.
Разделяют два типа функций — встроенные и пользовательские.
Встроенные функции — это функции, которые за нас уже написали создатели языка программирования, и мы можем просто брать их и использовать. В PHP существуют тысячи готовых функций на все случаи жизни!
Одна из таких, уже очень хорошо знакомых нам функций — это функция, которая выводит переданный ей текст на экран — print()
Пользовательские функции программист создает самостоятельно. Эти функции, как правило, используются только внутри одного проекта или, даже, сценария.
Анатомия функций
Как и с обычными переменными, работа с функциями состоит из их объявления и использования.
Перед тем, как использовать новую функцию, следует её объявить:
Пояснить все составные части функции проще всего на примере.
Допустим, на своём сайте мы хотим показывать, является ли выбранный пользователем год високосным. Для этого напишем функцию, в которую передаётся год. В результате работы функции мы хотим получить значение «истина», если год високосный, и «ложь» — если нет.
Определение такой функции:
Пример использования функции:
Потренироваться использовать функции в PHP можно в этом тренажёре.
Аргументы функции и область видимости
Наша функция умеет вычислять, является ли переданный год високосным.
Важно понимать, что функция — это как бы программа в программе. Это значит, что внутри такой функции не будут доступны переменные, которые определялись за её пределами. Чтобы передать внутрь функции информацию извне, нужно использовать аргументы функции.
Аргументы необходимы, так как функция «не видит» переменные, определённые за её границами. Поэтому нужные переменные надо передавать ей явно.
Верно и обратное — переменные, определённые внутри функции, не будут доступны извне. Такие переменные называются локальными, потому что они локальны по отношению к функции.
В отличие от аргументов, которых может быть несколько, вернуть во внешний код функция может только одно значение — с помощью инструкции «return» (возврат). Возвращаемое значение называют результатом работы функции.
Работа с пользовательскими функциями в PHP
Учебник PHP
Практика
Важное
Регулярки
Работа с htaccess
Файлы, папки
Сессии и куки
Работа с БД
Практика по работе с БД в PHP
Перед чтением см. новые уроки раздела «Важное», которые появились выше.
Практика
Движок PHP
Продвинутые БД
Аутентификация
Практика
ООП и MVC
Абстрактные классы и интерфейсы
Трейты
ООП Магия
Практика
Практика: классы как набор методов
Однако, с помощью стандартных функций невозможно сделать все, что нам требуется. На помощь приходит такой механизм PHP, как функции пользователя. С их помощью мы можем создавать свои функции, принцип работы которых аналогичен стандартным функциям PHP.
Зачем нужны пользовательские функции?
Очень часто при программировании возникает такая ситуация: некоторые участки кода повторяются несколько раз в разных местах. Пользовательские Функции нужны для того, чтобы убрать дублирование кода.
Кроме того, функции скрывают внутри себя какой-то код, о котором нам не приходится задумываться. Например, у нас есть функция saveUser(), которая сохраняет пользователя в базу данных. Мы можем просто вызывать ее, не задумываясь о том, какой код выполняется внутри функции. Это очень удобно. В программировании это называется инкапсуляцией.
Синтаксис функций пользователя
Сколько может быть параметров: один, несколько (в этом случае они указываются через запятую), ни одного (в этом случае круглые скобки все равно нужны, хоть они и будут пустыми).
Обратите внимание на фигурные скобки в примерах: в них мы пишем код, который выполняет функция. Общий синтаксис функции выглядит так:
Как вызвать функцию в коде?
Саму функцию мы можем вызвать в любом месте нашего PHP документа (даже до ее определения). Функция вызывается по ее имени. При этом круглые скобки после ее имени обязательны, даже если они пустые. Смотрите пример:
Подробнее о параметрах
В наших примерах мы вызывали функцию ‘hello()’ без параметров.
Давайте теперь попробуем ввести параметр, который будет задавать текст, выводимый нашей функцией:
Обратите внимание на переменную $text в нашей функции: в ней появляется то, что мы передали в круглых скобках при вызове функции.
Как PHP знает, что текст ‘Привет, Земляне!’ нужно положить в переменную $text? Мы сказали ему об этом, когда создавали нашу функцию, вот тут: ‘function hello(text)’.
Инструкция return
Чаще всего функция должна не выводить что-то через echo на экран, а возвращать.
Сделаем теперь так, чтобы функция не выводила что-то на экран, а возвращала текст скрипту, чтобы он смог записать этот текст в переменную и как-то обработать его дальше:
Частая ошибка с return
После того, как выполнится инструкция return – функция закончит свою работу. То есть: после выполнения return больше никакой код не выполнится.
Это не значит, что в функции должен быть один return. Но выполнится только один из них. Такое поведение функций является причиной многочисленных трудноуловимых ошибок.
Приемы работы с return
Существуют некоторые приемы работы с return, упрощающие код. Как сделать проще всего:
Теперь упростим нашу функцию, используя прием работы с return:
Обратите внимание на то, насколько упростился код. Плюсом также является то, что мы убрали лишнюю переменную $result.
Что вам делать дальше:
Приступайте к решению задач по следующей ссылке: задачи к уроку.
Первое знакомство с функциями php для начинающих
Синтаксис функций в php
В каждом языке программирования работа с функциями имеет свои « тонкости ». Рассмотрим их особенности в php :
Это значит, что при объявлении function Main() и function main() подразумевается одна и та же функция. А при вызове одной из них интерпретатор выдаст сообщение об ошибке:
В результате будет возвращена 1.
Множественную передачу значений можно осуществить при использовании в php массива в функции.
Пример:
Анонимные функции в php
Анонимной называется функция, определение которой происходит без указания имени. То есть ее определение происходит в месте вызова. При создании анонимной функции к ней обращаются напрямую, или переменной присваивается ссылка на нее.
Рассмотрим на примерах:
Функция mail()
Набор стандартных ( встроенных ) функций в php довольно широк. Многие из них реализуют основные возможности веб-сферы.
Описание принимаемых параметров:
Необязательные параметры функции mail() :
Пример отправки простого письма:
А вот пример полностью рабочей формы для отправки сообщений:
Несколько основных причин, почему письмо не отправляется:
Может произойти неправильная интерпретация параметра при передаче его почтовому агенту для отправки.
Обзор стандартных функций php
В стандартный набор php входит большой комплект функций для работы со строками. Подробно рассмотрим несколько из них:
3) strstr() – возвращает подстроку из строки, начиная с указанного символа. Синтаксис: string
strstr(string haystack, string needle)
Функции работы с массивами:
1. count() – возвращает количество элементов в массиве. Синтаксис: int count(mixed var)
2. reset() – устанавливает указатель массива на первый элемент, возвращает его значение.
Синтаксис: reset(array array)
Пример:
3. sort() – сортирует массив по возрастанию. Функция воспринимает любой массив как список. Синтаксис: void sort(array array [, int sort_flags])
Более подробно обо всех принимаемых значениях аргументов функции можно узнать из документации к php.
Несколько стандартных математических функций:
Одна ложка меда из бочки
Описанные функции php всего лишь ложка меда из огромной бочки волшебства этого языка. Самые вкусные функции распробуйте самостоятельно.
Основы синтаксиса PHP
Синтаксис языка
Разберёмся, из чего состоит любой язык программирования. Как и языки, на которых мы говорим, язык программирования также строится из кирпичиков, которые и составляют совокупность знаний, называемую человеческим языком.
У каждого языка есть свои правила и конструкции, следуя которым, мы выражаем свои мысли и делаем их понятными для другого человека. В программировании всё точно также. Но вместо человеческого языка мы используем язык программирования PHP, а в роли нашего собеседника выступает PHP-интерпретатор. Поэтому, чтобы выразить свою мысль, мы должны сделать её понятной для интерпретатора.
Переменные
Переменные — это основа любого языка программирования. Во время написания кода мы постоянно будем работать с переменными. Понять концепцию переменных очень просто.
Переменная — это контейнер, в котором содержатся данные, так же как напиток содержится в чашке.
Любую информацию, которую мы будем использовать в коде, сначала необходимо сохранить в переменной.
У переменной обязательно должно быть имя, поэтому переменная всегда состоит из имени и значения. Значение — это любая информация, которая хранится внутри переменной.
Например мы можем попросить посетителя страницы указать свой возраст, а затем использовать это значение для других целей — узнать год рождения или показать возраст самой странице.
Как работать с переменными
Примеры недопустимых имён:
Присваивание
Пустая переменная не будет слишком полезна. Поэтому давайте сразу что-нибудь туда поместим. Такое действие называется операцией присваивания.
Вот как выглядит присваивание информации в новую переменную:
$favorite_color = «green»;
Знак “равно” в PHP является оператором и всегда означает операцию присваивания.
Здесь мы записали слово “green” в переменную под именем favorite_color.
Обратите внимание: мы взяли в кавычки слово green. Кавычки всегда строго необходимы, если речь идёт об использовании текста. Но если в переменную помещается не текст, а число, то кавычки не нужны.
Пример:
$favorite_number = 42;
Использование
Мы научились сохранять информацию в переменных. Теперь посмотрим, как получить доступ к этой информации в нашем сценарии.
Ведь когда мы пытаемся запомнить в своей голове новый телефонный номер, то делаем это не просто так, а для чтобы на него позвонить.
Это значит, что мы запоминаем информацию с целью вернуться к ней в дальнейшем и применить для какого-то действия — совершить звонок, написать сообщение и тому подобное.
Такая логика полностью работает и в программировании. Сохранив информацию однажды, её можно использовать в дальнейшем для выполнения различных действий. Таким действием может быть вывод этой информации на экран.
Перепишем уже знакомый сценарий так, чтобы в нём использовались переменные.
Теперь этот простой сценарий состоит из двух шагов. На первом мы объявляем (инициализируем) новую переменную и помещаем туда текст. На втором шаге мы используем эту переменную, обращаясь к ней по имени в контексте вызова функции вывода на экран. То есть теперь функция print получает не текст напрямую, а переменную, которая содержит этот текст.
Хотите потренироваться использовать переменные в PHP? Тогда выполните это задание.
Конкатенация
В этом задании вы познакомитесь с конкатенацией на практике.
Типы данных
Выше уже упоминалось, что данные, помещённые в переменную, могут быть строкой текста или числом. В действительности таких типов данных гораздо больше, но первое время мы будем работать только с несколькими. Однако нам всё равно важно уже сейчас понимать, что такое «типы данных».
Тип данных в языке программирования определяет допустимые значения, а также допустимые операции с данными этого типа.
Например, с данными типа «целое число» допускается выполнять арифметические операции, а с данными типа «строка» — нет. Поделить строку на строку невозможно. Кроме того, числа могут быть только в определенных пределах (в версии PHP для 32-битной ОС, самое большое число: 2147483647), а строки обязательно должны находиться в кавычках.
Операторы
Вы можете потренироваться использовать арифметические операторы в этом задании.
PHP дополняет уже знакомые нам из арифметики операторы, несколькими новыми:
Условные конструкции
Из примера видно, что условная конструкция состоит из трех частей:
Обратите внимание, что каждый блок обрамляется и ограничивается фигурными скобками.
Чтобы закрепить материал, пройдите этот тренажёр. В нём подробно рассказывается, как использовать условные конструкции.
Выражения
Выражение в языке программирование — это минимальный блок кода, имеющий значение (результат). Звучит несколько сложно, но на практике почти каждая строка сценария является выражением. Вот несколько примеров выражений:
Важно усвоить одно главное свойство выражений — они всегда имеют результат. Также различают два типа выражений: логические и арифметические. Результатом выполнения логического выражение всегда будет истина или ложь.
Например, результатом выражения 2 > 3 будет “ложь”, потому что два, очевидно, меньше трех.
В каких случаях может понадобиться знать результат выражения?
Выражения особенно полезны в условиях, то есть когда мы хотим выполнить или не выполнять какое-либо действие, в зависимости от результата выражения. Выражения также можно объединять между собой таким образом, что несколько отдельных выражений в итоге вычисляются как одно.
Обратите внимание на ключевое слово and — это оператор, который объединяет два отдельных выражения в одно новое. Это новое выражение будет иметь значение «истина», только если оба отдельных выражений будут истинны.
Иными словами, наше условие будет выполняться только для посетителей мужского пола И возрастом старше восемнадцати. То есть несовершенолетние мальчики, равно как и совершенолетние девочки никакой картинки не увидят.
Понятие алгоритма
Многие из нас что-то слышали про алгоритмы на уроках информатики в школе. К сожалению, далеко не все школьные знания остаются с нами после её окончания. Тем не менее, понимание, что такое алгоритм, и умение эти самые алгоритмы строить — это очень важные навыки, без которых не получится решать даже относительно простые задачи.
Если говорить простыми словами, то алгоритм — это просто очень подробный план работы. Мы все в течение жизни что-нибудь планируем: отпуск, какое-нибудь мероприятие, своё самостоятельное обучение и тому подобное. От простого списка шагов алгоритм отличает существование условий и повторяющихся действий. Если вы в состоянии создать хороший, подробный алгоритм для реализации, скажем, какой-нибудь возможности на сайте, то можно считать, что половина дела уже сделана!
Разберём для примера один алгоритм средней сложности. На сайт нужно добавить форму обратной связи. Пользователь может заполнить эту форму, указать там свои контактные данные и написать сообщение. Информация из заполненной формы отправляется на электронную почту владельцу сайта. Вот как будет выглядеть алгоритм для этой задачи:
Функции в PHP
Дата: 01.04.2019 Категория: PHP Комментарии: 0

В этом уроке вы узнаете, как создавать свои собственные пользовательские функции в PHP.
Встроенные функции PHP
PHP обладает огромной коллекцией внутренних или встроенных функций, которые вы можете вызывать непосредственно в своих PHP-скриптах для выполнения конкретной задачи, например, gettype(), print_r(), var_dump() и т.д.
Ознакомьтесь с разделом справки по PHP для получения полного списка полезных встроенных функций PHP https://www.php.net/manual/ru/functions.internal.php.
Пользовательские функции PHP
В дополнение к встроенным функциям, PHP также позволяет вам определять свои собственные функции. Это способ создания повторно используемых блоков кода, которые выполняют конкретные задачи и могут храниться и поддерживаться отдельно от основной программы. Вот некоторые преимущества использования функций:
Следующая глава покажет вам, как легко вы можете определить свою собственную функцию в PHP.
Создание и вызов функций
Основной синтаксис создания пользовательской функции:
Объявление пользовательской функции начинается со слова function, за которым следует имя функции, которую вы хотите создать, за которой следуют скобки () и, наконец, тело вашей функции, заключенные в фигурные скобки <>.
Это простой пример пользовательской функции, которая отображает сегодняшнюю дату:
Функции с параметрами
Вы можете указать параметры, когда определяете свою функцию для приема входных значений во время выполнения. Параметры работают как переменные внутри функции; они заменяются во время выполнения значениями (аргументы), предоставленными функции во время вызова.
Вы можете определить столько параметров, сколько хотите. Однако для каждого указанного параметра необходимо передать соответствующий аргумент функции при ее вызове.
Функция getSum() в следующем примере принимает два целочисленных значения в качестве аргументов и просто складывает их вместе и затем отображает результат в браузере.
Функции с необязательными параметрами и значениями по умолчанию
Возвращение значений из функции
Функция может вернуть значение обратно в сценарий, который вызвал функцию, используя оператор return. Значение может быть любого типа, включая массивы и объекты.
Функция не может возвращать несколько значений. Однако вы можете получить более одного результата, возвращая массив, как показано в следующем примере.
Передача аргументов в функцию по ссылке
В PHP есть два способа передать аргументы функции: по значению и по ссылке. По умолчанию аргументы функции передаются по значению, поэтому, если значение аргумента внутри функции изменяется, оно не затрагивается вне функции. Однако, чтобы позволить функции изменять значения аргументов, они должны быть переданы по ссылке.
Передача аргумента по ссылке выполняется путем добавления амперсанда (&) к имени аргумента в определении функции, как показано в примере ниже:
Понятие «область видимости переменной»
Вы можете объявить переменные в любом месте PHP-скрипта. Но расположение объявления определяет степень видимости переменной в программе PHP, то есть где переменная может быть доступна. Эта доступность называется «область видимости переменной».
По умолчанию переменные, объявленные внутри функции, являются локальными, и к ним нельзя обращаться извне этой функции, как показано в следующем примере:
Так же, если вы попытаетесь получить доступ к внешней переменной внутри функции, вы получите ошибку «undefined varible», как показано в следующем примере:
Как видно из приведенных выше примеров, переменная, объявленная внутри функции, недоступна извне, аналогично переменная, объявленная вне функции, не доступна внутри функции. Такое разделение уменьшает вероятность того, что переменные в функции будут затронуты переменными в основной программе.
Ключевое слово global
Может возникнуть ситуация, когда вам нужно импортировать переменную из основной программы в функцию, или наоборот. В таких случаях вы можете использовать ключевое слово global перед переменными внутри функции. Это ключевое слово превращает переменную в глобальную переменную, делая ее видимой или доступной как внутри, так и снаружи функции, как показано в примере ниже:









