Функции PHP
Функция PHP — это кусок кода, который можно многократно использовать. Может принимать входные данные как список аргументов и возвращать значение. В PHP есть тысячи встроенных функций.
В PHP мы можем определить условную функцию, функцию внутри функции а так же рекурсивную функцию.
Преимущества функций РНР
- Повторное использование кода:
PHP функции определяются один раз, и могут быть вызваны многократно, как и собственно в других языках программирования.
Вам не нужно многократно писать одну и ту же логику. Используя функцию, вы можете написать логику только один раз и повторно использовать ее.
Функции PHP отделяют логику программирования. Поэтому легче понимать код приложения, потому что каждая логика разделена в виде функций.
PHP функции определённые пользователем
Мы можем легко объявить и вызвать функцию определённую пользователем. Давайте посмотрим синтаксис, чтобы объявить пользовательские функции. мя функции может начинаться только с прописного латинского символа и нижнего подчёркивания. нельзя начинать имена с цифр или спец символов.
Аргумент PHP функции
Мы можем передавать информацию в функции PHP через аргументы, которые разделены запятой.
PHP поддерживает вызов по значению (по умолчанию), вызов посредством ссылки, значения аргумента по умолчанию и список аргументов с переменной длиной.
Пример передачи одного аргумента в функции PHP:
Пример передачи двухаргументов в функцию PHP
PHP вызов посредством ссылки
Значение, передаваемое в функцию, не изменяет фактическое значение по умолчанию (вызов по значению). Но мы можем сделать это передав значение в качестве ссылки. По умолчанию значение, передаваемое нв функцию, является вызовом по значению. Чтобы пройти значение в качестве ссылки, вам необходимо использовать символ аперсанд (&) перед именем аргумента.
Рассмотрим простой пример вызова посредством ссылки в PHP:
Значение аргумента по умолчанию
Мы можем указать значение аргумента по умолчанию в функции. При вызове функции PHP, если вы не укажете какой-либо аргумент, функция примет этот аргумент по умолчанию.
Рассмотрим простой пример использования значения аргумента по умолчанию в функции PHP.
Возвратное значение return
Рассмотрим пример функции PHP, которая возвращает значение.
Параметризованная функция
Параметр излучения функция это функция с параметрами. Вы можете переживать любое количество параметров в функцию Переданные параметры действуют в качестве переменных внутри вашей функции. Они указаны внутри скобок, после имени функции. Вывод информации зависит от динамических значений, переданных в качестве параметров в функцию.
Пример 1. Сложение и вычитание:
В этом примере мы передали два параметра $ x и $ y внутрь двух функций add () и sub ().
Пример 2. Сложение и вычитание с динамическим числом:
In this example, we have passed two parameters $x and $y inside two functions add() and sub().
Вызов по значению
PHP позволяет вам вызывать функцию по значению и ссылке. В случае вызова PHP по значению фактическое значение не изменяется, если оно модифицировано внутри функции. Понять концепцию вызова по значению можно при помощи примера.
В этом примере переменная $str была передана в функцию adder где она объединилась со строкой ‘Call By Value’. Но в результате вывода переменной только’Hello’. Это потому что изменения произошли только в локальной переменной $str2, и не отразились на переменной $str.
Пример2.
Попробуем понять концепцию вызова по значению через другой пример.
Вызов по ссылке
В случае вызова PHP по ссылке, фактическое значение изменяется, если оно модифицировано внутри функции. В таком случае вам нужно использовать символ & (амперсанд) с формальными аргументами. Аперсанд(&) представляет собой ссылку на переменную.
Рассмотрим концепцию вызова по ссылке при помощи примера:
Пример1.
В этом примере переменная $str передана функции adder , где онаобъеденилась со строкой ‘This is Call By Reference’. Здесь результат вывода преременной $str является ‘This is Call By Reference’. Это потому, что изменения произошли в фактической переменной $str .
Значение аргумента функции по умолчанию
PHP позволяет определить значения аргумента стилей C ++ по умолчанию. В том случае, если вы не передадите никакого значения функции, будет использован аргумент значения по умолчанию.
Переменное количество аргументов.
PHP поддерживает переменное количество аргументов функции. Это значит, что вы можете передавать 0 ,1 или n-е количество аргументов в функцию. Для этого вам нужно использовать троеточие перед именем аргумента. Концепция троеточия для переменной длинны аргумента реализована в РНР начиная с версии 5.6.
Рекурсивная функция
Подобно как в С\С++, РНР так же поддерживает рекурсивные функции. В таком случае мы вызываем текущую функцию внутри функции. Это так же называется рекурсией. Рекомендуется избегать вызова рекурсивной функции с уровнем более 200-т повторений, потому что это может разбить стек и привести к прекращению скрипта.
PHP: Определение и вызов функции
Функция — это именованный блок кода, в данном случае на языке PHP, который определяется один раз, а затем может вызываться на исполнение сколько угодно раз.
Определение функции выполняется с помощью ключевого слова function за которым указываются следующие компоненты:
-
Идентификатор , определяющий имя функции. Он будет использован для создания новой переменной, которой будет присвоена функция. Имена функций следуют тем же правилам, что и именование переменных.
Примечание: имена функций не чувствительны к регистру букв.
Синтаксис определения функции выглядит следующим образом:
Квадратные скобки ( [] ) означают необязательность. Теперь приведем простой пример определения функции:
Для вызова функции используется оператор вызова, представляющий из себя пару круглых скобок. Завершается вызов функции как и все инструкции точкой с запятой ( ; ):
При вызове функции исполняются инструкции, расположенные в ее теле.
Функции допускается определять в любом месте программы, это значит, что они не обязательно быть определены до их использования, исключая тот случай, когда функции определяются условно:
Все функции в PHP имеют глобальную область видимости — они могут быть вызваны вне функции, даже если были определены внутри и наоборот:
Чаще всего функции работают с каким-либо переданными ей значениями. Для того, чтобы функции можно было передать некоторые значения, в ней должны быть указаны параметры. Эти параметры по сути являются обычными переменными, которые инициализируются переданными значениями при вызове функции.
Как вызывать функцию в php
Функции представляют собой блок инструкций, которые многократно можно вызывать в различных частях программы. Функции позволяют разделять программуу на меньшие функциональные части.
Общий синтаксис определения функции выглядит следующим образом:
Определение функции начинается с ключевого слова function , за которым следует имя функции. Имя функции должно начинаться с алфавитного символа или подчеркивания, за которыми может следовать любое количество алфавитно-цифровых символов или символов подчеркивания.
После имени функции в скобках идет перечисление параметров. Даже если параметров у функции нет, то просто идут пустые скобки. Затем в фигурных скобках идет тело функции, содержащее набор инструкций.
Определим простейшую функцию:
Данная функция назывется hello . Она не имеет параметров, поэтому после названия функции идут пустые скобки. Блок функции содержит только одну инструкцию, которая выводит сообщение «Hello PHP».
Чтобы функция сработала, ее надо вызвать. Для вызова функции указывается ее имя, после которого в скобках идут значения для ее параметров (если, кончено, она имеет параметры):
Например, вызовем вышеопределенную функцию hello :
Поскольку для функции hello мы не определили никаких параметров, то при ее вызове указываем название функции и после нее пустые круглые скобки. Заканчивается вызов функции точкой с запятой.
В итоге браузер выведет сообщение:
Преимуществом функций является то, что, определив однажды, мы можем многократно их вызывать в различных частях программы:

Стоит отметить, что в данном случае сначала определяется функция, а затем она вызывается. Но мы также можно сделать наоборот:
Тем не менее есть исключения. В частности, при определении функции при определенном условии.
Функции PHP
В мире программирования и сценариев существует два способа писать код. Первый из них — это написать длинные и монолитные разделы сценария. Другой — разбить код на аккуратные, автономные блоки, которые можно использовать повторно, не изобретая один и тот же код снова и снова. Очевидно, что второй метод предпочтительнее первого, а фундаментальным строительным блоком этого подхода к написанию сценариев PHP является функция.
Функция — это именованный блок кода, который может быть вызван из любого другого участка кода для выполнения определенной задачи. Значения (аргументы) могут быть переданы в функцию, чтобы их можно было использовать в сценарии функции, а функция, в свою очередь, может возвращать результаты в то место сценария, из которого она была вызвана.
Функции в PHP существуют в двух формах:
- Встроенные функции : функции, которые предоставляются вместе с PHP, чтобы облегчить вам жизнь веб-разработчика, например, print_r(), var_dump, gettype() fopen() и др.
- Пользовательские функции : помимо встроенных функций, мы можем создавать наши собственные пакеты кода и использовать их везде, где это необходимо, просто их вызывая.
Создание пользовательской функции PHP
Первым шагом в создании функции PHP является указание имени, по которому вы будете ссылаться на функцию. В соответствии с соглашением об именах для функций PHP, они должны начинаться с буквы или подчеркивания и не должны содержать каких-либо пробелов или знаков препинания. Важно также предусмотреть, чтобы имя вашей функции не конфликтовало ни с одной из встроенных функций PHP.
Функции PHP создаются с использованием ключевого слова function , за которым следует имя и, наконец, набор круглых скобок () . Затем тело функции (сценарий, выполняющий работу функции), которое заключено в фигурные скобки <> .
Примечание: Имена функций не чувствительны к регистру букв.
В приведенном ниже примере мы создаем функцию с именем report . Открывающая фигурная скобка (<) указывает начало кода функции, а закрывающая фигурная скобка (>) указывает конец функции. Функция выводит строку «Это моя первая функция» . Чтобы вызвать функцию, просто напишите ее имя и вставьте за ним скобки ():
Пример
Результат выполнения кода:
Параметры функции PHP
Параметры (или аргументы, как их чаще называют) могут быть переданы в функцию. Аргументы указываются после имени функции в круглых скобках () . Вы можете добавить сколько угодно аргументов, просто разделив их запятыми. К именам параметров применяются те же правила, которые применяются к именам переменных в целом.
В следующем примере есть функция с двумя аргументами ($car, $color). Когда вызывается функция my_car(), мы также передаем значения аргументов (например, Mazda), и это значения используется внутри функции:
Пример
Результат выполнения кода:
В следующем примере вызываем функцию с двумя аргументами ($fname и $year) передавая разные значения:
Пример
Результат выполнения кода:
Передача параметров в функцию по ссылке
По умолчанию параметры функции передаются по значению, поэтому, если значение аргумента внутри функции изменяется, оно не затрагивается вне функции. Если нужно позволить функции изменять значения параметров, последние должны быть переданы по ссылке.
Передача параметров по ссылке выполняется добавлением амперсанда (&) к имени параметра в определении функции, как показано в примере ниже:
Пример
Результат выполнения кода:
Значения по умолчанию для параметров функции
Функции могут определять значения аргументов по умолчанию. Чтобы установить значение по умолчанию просто вставьте имя параметра, затем знак равенства (=) и значение по умолчанию:
Пример
Результат выполнения кода:
В приведенном выше примере параметр $num имеет значение по умолчанию 15. Во втором вызове функции мы не передаем какое-либо значение для этого параметра, поэтому принимается значение по умолчанию 15. А вот параметр $str не имеет значения по умолчанию, поэтому он обязателен при вызове функции.
Примечание: Все параметры, для которых установлены значения по умолчанию, должны находиться правее параметров, для которых значения по умолчанию не заданы. В противном случае ваш код выдаст ошибку.
Возврат значения из функции PHP
Функции могут возвращать значения в ту часть PHP сценария, из которой они были вызваны. Для возврата значения используется ключевое слово return . Возвращаемое значение может быть любого типа, включая массивы и объекты.
Оператор return может распологаться в любом месте функции. Когда интерпретатор доходит к оператору return , функция возвращает значение (если указано) и завершает свое выполнение. Если оператор return не указан или не указано возвращаемое значение, то функция вернет значение NULL .
В следующем примере возвращаемое функцией значение присваивается переменной:
Пример
Результат выполнения кода:
Функция не может возвращать несколько значений. Но мы можем получить несколько результатов, возвращая массив, как показано в следующем примере:
Пример
Результат выполнения кода:
Строгая типизация
Обратите внимание, что в приведенном выше примере мы не указывали PHP-интерпретатору, к какому типу данных принадлежит переменная.
PHP — это слабо типизированный язык и он автоматически связывает тип данных с переменной в зависимости от ее значения. Благодаря этой особенности, мы можем добавлять строки к целому числу, не вызывая ошибки.
В PHP 7 были добавлена возможность объявления типов данных. Теперь для отдельных файлов можно включать режим строгой типизации strict . В этом режиме в функцию можно передавать значения только тех типов, которые объявлены для аргументов. В противном случае будет выбрасываться исключение TypeError.
В следующем примере функция получает параметры как число, так и строку, не используя strict :
Пример
Результат выполнения кода:
Для влючения режима строгой типизации используется выражение declare в объявлении strict_types , которое прописывается в верхней строке файла PHP:
Пример
Результат выполнения кода будет примерно такой:
В этом примере мы передаём функции в качестве аргументов как число, так и строку, но здесь мы добавили строгий ррежим strict и получили фатальную ошибку.
Объявления типа возвращаемого значения
PHP 7 поддерживает объявление типа возвращаемого значения функции (return) . Как и в случае с объявлением типа для аргументов функции, включение режима строгой типизации при несоответствии типа возвращаемого значения функции вызовет ошибку.
Чтобы объявить режима строгой типизации для возвращаемого значения функции, добавьте двоеточие (:) и тип прямо перед открывающей фигурной скобкой < при объявлении функции.
Пример
Результат выполнения кода:
Укажем тип возвращаемого значения, отличный от типов аргументов, и убедимся, что тип возвращаемого значения функции является правильным: