HTML Diff
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 &lt;?php function first_function() { echo "&lt;h4&gt;1-я пользовательская функция&lt;/h4&gt;"; function second_function() { echo "&lt;h5&gt;2-я пользовательская функция&lt;/h5&gt;"; } } first_function(); second_function(); ?&gt;<p>В данном примере мы получим следующий вывод:</p>
9 &lt;?php function first_function() { echo "&lt;h4&gt;1-я пользовательская функция&lt;/h4&gt;"; function second_function() { echo "&lt;h5&gt;2-я пользовательская функция&lt;/h5&gt;"; } } first_function(); second_function(); ?&gt;<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 &lt;?php $a = 100; function funct() { $a = 70; echo "&lt;h4&gt;$a&lt;/h4&gt;"; } funct(); echo "&lt;h2&gt;$a&lt;/h2&gt;"; ?&gt;<p>Сценарий выведет сначала 70, а потом 100:</p>
16 &lt;?php $a = 100; function funct() { $a = 70; echo "&lt;h4&gt;$a&lt;/h4&gt;"; } funct(); echo "&lt;h2&gt;$a&lt;/h2&gt;"; ?&gt;<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 &lt;?php function funct() { $number = 777; return $number; } $a = funct(); echo $a; ?&gt;<p>Здесь функция funct возвращает посредством<strong>return</strong>число 777. Возвращённое значение присваивается глобальной переменной<strong>$a</strong>, после чего оператор<strong>echo</strong>выводит в браузер значение переменной<strong>$a</strong>. В итоге мы видим в браузере число 777.</p>
27 &lt;?php function funct() { $number = 777; return $number; } $a = funct(); echo $a; ?&gt;<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