Встроенные функции PHP
PHP имеет более 1000 встроенных функций, которые могут быть вызваны непосредственно из скрипта для выполнения конкретной задачи. Пожалуйста, ознакомьтесь с нашим справочником PHP для полного обзора.
Пользовательские функции PHP
Помимо встроенных функций PHP, можно создавать свои собственные функции.
- Функция - это блок операторов, который может многократно использоваться в программе.
- Функция не выполняется автоматически при загрузке страницы.
- Функция выполняется только тогда, когда она вызвана.
Создание функции
Объявление пользовательской функции начинается с ключевого слова
function, за которым следует имя функции.
Открывающая фигурная скобка { указывает на начало кода функции, а закрывающая фигурная скобка } указывает на конец функции.
Примечание: Имя функции не чувствительно к регистру и должно начинаться с буквы или символа подчеркивания.
Синтаксис
function имяФункции($параметр1, $параметр2) {
// исполняемый код
return $значение; // необязательно
}
Следующий пример создает функцию с именем myMessage():
Пример
function myMessage() {
echo "Hello world!";
}
Совет: Дайте функции имя, которое отражает то, что она делает!
Вызов функции
Чтобы вызвать функцию, просто напишите ее имя, за которым следуют круглые скобки ().
Функция ниже выводит "Hello world!":
Пример
Вызовите функцию myMessage()
function myMessage() {
echo "Hello world!";
}
myMessage();
Попробуйте сами »
Параметры функций PHP
Информация может быть передана функциям через параметры. Параметр подобен переменной.
Параметры указываются после имени функции внутри круглых скобок. Вы можете добавить столько параметров, сколько хотите, просто разделяя их запятыми.
Следующий пример имеет функцию с одним параметром ($fname). Когда вызывается функция familyName(), мы также передаем имя, например ("Jani"), и имя используется внутри функции, которая выводит несколько разных имен, но одинаковую фамилию:
Пример
function familyName($fname) {
echo "$fname Refsnes.<br>";
}
familyName("Jani");
familyName("Hege");
familyName("Stale");
familyName("Kai Jim");
familyName("Borge");
Попробуйте сами »
Следующий пример имеет функцию с двумя параметрами ($fname, $year):
Пример
function familyName($fname, $year) {
echo "$fname Refsnes. Born in $year.<br>";
}
familyName("Hege", "1975");
familyName("Stale", "1978");
familyName("Kai Jim", "1983");
Попробуйте сами »
Значение параметра по умолчанию в PHP
Следующий пример показывает, как использовать параметр по умолчанию.
Если мы вызовем функцию setHeight() без параметра, она примет значение по умолчанию:
Пример
function setHeight($height = 50) {
echo "Высота: $height <br>";
}
setHeight(350);
setHeight(); // примет значение по умолчанию 50
Попробуйте сами »
Функции PHP - Возврат значений
Оператор
return немедленно завершает выполнение функции и возвращает значение обратно в строку кода, которая вызвала функцию:
Пример
function sum($x, $y) {
$z = $x + $y;
return $z;
}
echo "5 + 10 = " . sum(5, 10) . "<br>";
echo "7 + 13 = " . sum(7, 13) . "<br>";
echo "2 + 4 = " . sum(2, 4);
Попробуйте сами »
Передача аргументов по ссылке
Аргументы обычно передаются по значению, что означает, что копия значения используется в функции, и переменная, переданная в функцию, не может быть изменена.
Когда аргумент функции передается по ссылке, изменения аргумента также изменяют переменную, которая была передана. Чтобы превратить аргумент функции в ссылку, используйте оператор & перед аргументом/параметром:
Пример
Используйте аргумент, передаваемый по ссылке, для обновления переменной:
function add_five(&$value) {
$value += 5;
}
$num = 2;
add_five($num);
echo $num;
Попробуйте сами »
Переменное количество параметров
Используя оператор ... перед параметром функции, функция принимает неизвестное количество параметров. Это также называется вариативной функцией.
Аргумент вариативной функции становится массивом.
Пример
Функция, которая не знает, сколько аргументов получит:
function sumMyNumbers(...$x) {
$n = 0;
$len = count($x);
for($i = 0; $i < $len; $i++) {
$n += $x[$i];
}
return $n;
}
$a = sumMyNumbers(5, 2, 6, 2, 7, 7);
echo $a;
Попробуйте сами »
Вы можете иметь только один аргумент переменной длины, и он должен быть последним аргументом.
Пример
Вариативный аргумент должен быть последним аргументом:
function myFamily($lastname, ...$firstname) {
$txt = "";
$len = count($firstname);
for($i = 0; $i < $len; $i++) {
$txt = $txt."Привет, $firstname[$i] $lastname.<br>";
}
return $txt;
}
$a = myFamily("Doe", "Jane", "John", "Joey");
echo $a;
Попробуйте сами »
Если вариативный аргумент не является последним, вы получите ошибку.
Пример
Наличие оператора ... на первом из двух аргументов вызовет ошибку:
function myFamily(...$firstname, $lastname) {
$txt = "";
$len = count($firstname);
for($i = 0; $i < $len; $i++) {
$txt = $txt."Привет, $firstname[$i] $lastname.<br>";
}
return $txt;
}
$a = myFamily("Doe", "Jane", "John", "Joey");
echo $a;
Попробуйте сами »
PHP - язык со слабой типизацией
В приведенных выше примерах обратите внимание, что нам не нужно было указывать PHP, какой тип данных имеет переменная.
PHP автоматически связывает тип данных с переменной в зависимости от ее значения. Поскольку типы данных не заданы, вы можете делать такие вещи, как добавление строки к целому числу, не вызывая ошибки.
Начиная с PHP 7, были добавлены объявления типов. Это дает нам возможность указать ожидаемый тип данных при объявлении функции, и добавление объявления strict приведет к "Фатальной ошибке", если тип данных не совпадает.
Чтобы указать strict режим, нам нужно установить
declare(strict_types=1);. Это должно быть на самой первой строке PHP файла.
В следующем примере мы отправляем функции и число, и строку, но здесь мы добавили объявление strict:
Пример
<?php declare(strict_types=1); // строгое требование
function addNumbers(int $a, int $b) {
return $a + $b;
}
echo addNumbers(5, "5 days");
// поскольку "5 days" не является целым числом, будет вызвана ошибка
?>
Попробуйте сами »
Объявление strict заставляет вещи использоваться предполагаемым образом.
Объявления типа возвращаемого значения в PHP
PHP также поддерживает объявления типов для оператора
return.
Чтобы объявить тип данных для возврата функции, добавьте двоеточие (:) и тип данных непосредственно перед открывающей фигурной скобкой ({) при объявлении функции.
В следующем примере мы указываем тип возвращаемого значения (float) для функции:
Пример
<?php declare(strict_types=1); // строгое требование
function addNumbers(float $a, float $b) : float {
return $a + $b;
}
echo addNumbers(1.2, 5.2);
?>
Попробуйте сами »
Вы также можете указать другой тип возвращаемого значения, отличный от типов аргументов, но убедитесь, что возвращаемое значение имеет правильный тип:
Пример
<?php declare(strict_types=1); // строгое требование
function addNumbers(float $a, float $b) : int {
return (int)($a + $b);
}
echo addNumbers(1.2, 5.2);
Попробуйте сами »