0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Каждый язык программирования имеет подпрограммы. Речь идёт о специально оформленных фрагментах кода, к которым можно обращаться из любого места внутри программы. В PHP - это<strong>пользовательские функции</strong>. Они значительно упрощают жизнь<a>разработчикам на PHP</a>, т. к. улучшают читабельность кода и сокращают его, ведь отпадает необходимость несколько раз писать отдельные части кода.</p>
1
<p>Каждый язык программирования имеет подпрограммы. Речь идёт о специально оформленных фрагментах кода, к которым можно обращаться из любого места внутри программы. В PHP - это<strong>пользовательские функции</strong>. Они значительно упрощают жизнь<a>разработчикам на PHP</a>, т. к. улучшают читабельность кода и сокращают его, ведь отпадает необходимость несколько раз писать отдельные части кода.</p>
2
<p>Кроме встроенных PHP-функций, нередко возникает необходимость создать пользовательские функции, выполняющие определённые задачи.</p>
2
<p>Кроме встроенных PHP-функций, нередко возникает необходимость создать пользовательские функции, выполняющие определённые задачи.</p>
3
<h2>Какими особенностями обладают пользовательские функции в PHP?</h2>
3
<h2>Какими особенностями обладают пользовательские функции в PHP?</h2>
4
<p>В PHP выделяют следующие особенности пользовательских функций: - доступность параметров по умолчанию. Вы можете вызывать одну и ту же функцию в PHP с переменным числом параметров; - область видимости переменных внутри пользовательской функции является древовидной (иерархической); - пользовательские функции способны возвращать любой тип; - присутствует возможность менять переменные, которые переданы в качестве аргумента.</p>
4
<p>В PHP выделяют следующие особенности пользовательских функций: - доступность параметров по умолчанию. Вы можете вызывать одну и ту же функцию в PHP с переменным числом параметров; - область видимости переменных внутри пользовательской функции является древовидной (иерархической); - пользовательские функции способны возвращать любой тип; - присутствует возможность менять переменные, которые переданы в качестве аргумента.</p>
5
<p>В<a>языке PHP у разработчика</a>есть достаточно много свободы при создании пользовательских функций. При этом, как уже было сказано, в пользовательских PHP-функциях доступны параметры по умолчанию, в отличие от того же C++.</p>
5
<p>В<a>языке PHP у разработчика</a>есть достаточно много свободы при создании пользовательских функций. При этом, как уже было сказано, в пользовательских PHP-функциях доступны параметры по умолчанию, в отличие от того же C++.</p>
6
<h2>Недостатки пользовательских функций PHP</h2>
6
<h2>Недостатки пользовательских функций PHP</h2>
7
<p>У пользовательских функций в PHP есть и ряд минусов: 1.Нельзя объявить локальные функции. Сделать это так, как в других языках программирования, не получится. Вы попросту не сможете создать функцию внутри другой функции, чтобы 1-я вложенная функция была видна лишь во 2-ой функции. В языке программирования PHP такая вложенная функция станет доступна полностью всей программе (скрипту), то есть попросту не будет локальной.</p>
7
<p>У пользовательских функций в PHP есть и ряд минусов: 1.Нельзя объявить локальные функции. Сделать это так, как в других языках программирования, не получится. Вы попросту не сможете создать функцию внутри другой функции, чтобы 1-я вложенная функция была видна лишь во 2-ой функции. В языке программирования PHP такая вложенная функция станет доступна полностью всей программе (скрипту), то есть попросту не будет локальной.</p>
8
<p>Давайте объясним это на примере:</p>
8
<p>Давайте объясним это на примере:</p>
9
<?php function first_function() { echo "<h4>1-я пользовательская функция</h4>"; function second_function() { echo "<h5>2-я пользовательская функция</h5>"; } } first_function(); second_function(); ?><p>В данном примере мы получим следующий вывод:</p>
9
<?php function first_function() { echo "<h4>1-я пользовательская функция</h4>"; function second_function() { echo "<h5>2-я пользовательская функция</h5>"; } } first_function(); second_function(); ?><p>В данном примере мы получим следующий вывод:</p>
10
1-я пользовательская функция 2-я пользовательская функция<p>Это значит, что программе доступны обе функции. Таким образом, 2-я функция локальной не является.</p>
10
1-я пользовательская функция 2-я пользовательская функция<p>Это значит, что программе доступны обе функции. Таким образом, 2-я функция локальной не является.</p>
11
<p>2.Следующий минус пользовательских PHP-функций связан с областью видимости функций. Но прежде давайте поясним, какие переменные у нас глобальные, а какие локальные.</p>
11
<p>2.Следующий минус пользовательских PHP-функций связан с областью видимости функций. Но прежде давайте поясним, какие переменные у нас глобальные, а какие локальные.</p>
12
<p>К глобальным относят переменные, доступные всей программе, включая подпрограммы. К локальным - переменные, определённые внутри функции (подпрограммы). То есть они доступны лишь внутри функции, в которой определены.</p>
12
<p>К глобальным относят переменные, доступные всей программе, включая подпрограммы. К локальным - переменные, определённые внутри функции (подпрограммы). То есть они доступны лишь внутри функции, в которой определены.</p>
13
<p>Для языка PHP все переменные, которые объявлены и используются в функции, по умолчанию<strong>локальны для функции</strong>. Таким образом, у вас отсутствует возможность по умолчанию изменить значение глобальной переменной в теле функции.</p>
13
<p>Для языка PHP все переменные, которые объявлены и используются в функции, по умолчанию<strong>локальны для функции</strong>. Таким образом, у вас отсутствует возможность по умолчанию изменить значение глобальной переменной в теле функции.</p>
14
<p>Когда вы будете в теле пользовательской функции использовать переменную с именем, которое идентично имени глобальной переменной (находится вне пользовательской функции), то эта локальный переменная не будет иметь ни малейшего отношения к глобальной переменной. В такой ситуации в пользовательской функции создаётся локальная переменная с именем, которое идентично имени глобальной переменной, причем доступна эта локальная переменная будет лишь внутри данной пользовательской функции.</p>
14
<p>Когда вы будете в теле пользовательской функции использовать переменную с именем, которое идентично имени глобальной переменной (находится вне пользовательской функции), то эта локальный переменная не будет иметь ни малейшего отношения к глобальной переменной. В такой ситуации в пользовательской функции создаётся локальная переменная с именем, которое идентично имени глобальной переменной, причем доступна эта локальная переменная будет лишь внутри данной пользовательской функции.</p>
15
<p>Вот как это выглядит на практике:</p>
15
<p>Вот как это выглядит на практике:</p>
16
<?php $a = 100; function funct() { $a = 70; echo "<h4>$a</h4>"; } funct(); echo "<h2>$a</h2>"; ?><p>Сценарий выведет сначала 70, а потом 100:</p>
16
<?php $a = 100; function funct() { $a = 70; echo "<h4>$a</h4>"; } funct(); echo "<h2>$a</h2>"; ?><p>Сценарий выведет сначала 70, а потом 100:</p>
17
<p>Чтобы избавиться от вышеописанного недостатка, в PHP есть специальная инструкция<strong>global</strong>- она позволяет работать с глобальными переменными пользовательской функции.</p>
17
<p>Чтобы избавиться от вышеописанного недостатка, в PHP есть специальная инструкция<strong>global</strong>- она позволяет работать с глобальными переменными пользовательской функции.</p>
18
<h2>Создаём пользовательскую функцию в PHP</h2>
18
<h2>Создаём пользовательскую функцию в PHP</h2>
19
<p>Пользовательскую функцию можно объявить в любой части скрипта непосредственно до места её 1-го использования. И не надо никакого предварительного объявления, как это принято в прочих языках программирования, в том же "Си".</p>
19
<p>Пользовательскую функцию можно объявить в любой части скрипта непосредственно до места её 1-го использования. И не надо никакого предварительного объявления, как это принято в прочих языках программирования, в том же "Си".</p>
20
<p>У такого подхода есть свои плюсы. Когда транслятор дойдёт до определения пользовательской функции, он проверит корректность определения, а потом выполнит трансляцию определения функции во внутреннее представление, однако сам код транслировать не будет. И это верно, ведь зачем транслировать код, который, может, не будет использован.</p>
20
<p>У такого подхода есть свои плюсы. Когда транслятор дойдёт до определения пользовательской функции, он проверит корректность определения, а потом выполнит трансляцию определения функции во внутреннее представление, однако сам код транслировать не будет. И это верно, ведь зачем транслировать код, который, может, не будет использован.</p>
21
<p>Рассмотрим<strong>синтаксис объявления пользовательских функций в PHP</strong>:</p>
21
<p>Рассмотрим<strong>синтаксис объявления пользовательских функций в PHP</strong>:</p>
22
function Имя (аргумент1[=значение1],...,аргумент1[=значение1]) { тело_функции }<p>Начинается объявление функции служебным словом<strong>function</strong>, потом идёт имя функции, далее - список аргументов в скобках. Что касается тела функции, то оно помещается в фигурные скобки и может содержать практически любое число операторов.</p>
22
function Имя (аргумент1[=значение1],...,аргумент1[=значение1]) { тело_функции }<p>Начинается объявление функции служебным словом<strong>function</strong>, потом идёт имя функции, далее - список аргументов в скобках. Что касается тела функции, то оно помещается в фигурные скобки и может содержать практически любое число операторов.</p>
23
<p>К именам функций в PHP предъявляется<strong>ряд требований</strong>: - они могут включать русские буквы, однако это не рекомендуется; - нельзя, чтобы имена функции содержали пробелы; - важно, чтобы имя каждой функции было уникальным (здесь надо помнить, что регистр во время объявления функции не учитывается, равно как и при обращении к ней). Таким образом, функции FUNCT() и funct() обладают одинаковыми именами; - функции могут иметь те же имена, как и у переменных, но без знака $ в начале.</p>
23
<p>К именам функций в PHP предъявляется<strong>ряд требований</strong>: - они могут включать русские буквы, однако это не рекомендуется; - нельзя, чтобы имена функции содержали пробелы; - важно, чтобы имя каждой функции было уникальным (здесь надо помнить, что регистр во время объявления функции не учитывается, равно как и при обращении к ней). Таким образом, функции FUNCT() и funct() обладают одинаковыми именами; - функции могут иметь те же имена, как и у переменных, но без знака $ в начале.</p>
24
<p>Что касается типов значений, возвращаемых функциями, то они могут быть любыми.</p>
24
<p>Что касается типов значений, возвращаемых функциями, то они могут быть любыми.</p>
25
<p>Чтобы передать результат работы функций в основной скрипт, применяют конструкцию<strong>return</strong>. Когда функция не возвращает ничего, конструкция return не указывается. При этом конструкция return способна возвращать всё, включая массивы.</p>
25
<p>Чтобы передать результат работы функций в основной скрипт, применяют конструкцию<strong>return</strong>. Когда функция не возвращает ничего, конструкция return не указывается. При этом конструкция return способна возвращать всё, включая массивы.</p>
26
<p>Рассмотрим пример использования пользовательской функции:</p>
26
<p>Рассмотрим пример использования пользовательской функции:</p>
27
<?php function funct() { $number = 777; return $number; } $a = funct(); echo $a; ?><p>Здесь функция funct возвращает посредством<strong>return</strong>число 777. Возвращённое значение присваивается глобальной переменной<strong>$a</strong>, после чего оператор<strong>echo</strong>выводит в браузер значение переменной<strong>$a</strong>. В итоге мы видим в браузере число 777.</p>
27
<?php function funct() { $number = 777; return $number; } $a = funct(); echo $a; ?><p>Здесь функция funct возвращает посредством<strong>return</strong>число 777. Возвращённое значение присваивается глобальной переменной<strong>$a</strong>, после чего оператор<strong>echo</strong>выводит в браузер значение переменной<strong>$a</strong>. В итоге мы видим в браузере число 777.</p>
28
<p><em>Хотите знать больше? Записывайтесь на курс "<a>Backend-разработчик на PHP</a>"!</em></p>
28
<p><em>Хотите знать больше? Записывайтесь на курс "<a>Backend-разработчик на PHP</a>"!</em></p>
29
29