В этом уроке мы сделаем наши функции по-настоящему гибкими и мощными с помощью параметров. Параметры — это как входные двери для ваших функций, через которые вы передаете данные для обработки. Мы начнем с основ: научимся создавать функции, принимающие один или несколько параметров. Затем перейдем к более продвинутым темам: разберемся, как задавать значения по умолчанию, чтобы делать некоторые параметры необязательными. Также мы познакомимся с типизацией параметров, которая помогает писать более надежный и предсказуемый код, и рассмотрим передачу данных по ссылке. Этот набор навыков позволит вам создавать универсальные и многоразовые блоки кода.
- Модуль 1: Основы синтаксиса PHP
- Модуль 2: Переменные и типы данных
- Модуль 3: Операторы
- Модуль 4: Условные конструкции
- Модуль 5: Циклы
- Модуль 6: Массивы
- Индексированные массивы.
- Ассоциативные массивы.
- Многомерные массивы.
- Добавление элементов в массив.
- Удаление элементов из массива.
- Функция count().
- Функция array_push() и array_pop().
- Функция array_shift() и array_unshift().
- Функция array_merge().
- Функция array_slice().
- Функция array_splice().
- Функция in_array().
- Функция array_search().
- Функция array_keys() и array_values().
- Функция array_unique().
- Функция array_reverse().
- Сортировка: sort(), rsort().
- Сортировка: asort(), arsort().
- Сортировка: ksort(), krsort().
- Функция array_map().
- Функция array_filter().
- Функция array_reduce().
- Функция array_walk().
- Функция array_column().
- Деструктуризация массивов.
- Модуль 7: Функции
- Объявление функций.
- Вызов функций.
- Параметры функций.
- Возврат значений return.
- Значения параметров по умолчанию.
- Передача по значению.
- Передача по ссылке.
- Переменное количество аргументов.
- Оператор распаковки ....
- Типизация параметров.
- Типизация возвращаемых значений.
- Nullable типы.
- Union типы (PHP 8).
- Именованные аргументы (PHP 8).
- Анонимные функции.
- Стрелочные функции.
- Замыкания и use.
- Рекурсивные функции.
- Глобальные переменные в функциях.
- Статические переменные в функциях.
- Модуль 8: Работа со строками
- Одинарные и двойные кавычки.
- Экранирование символов.
- Heredoc и Nowdoc синтаксис.
- Функция strlen().
- Функция substr().
- Функция str_replace().
- Функция strpos() и strrpos().
- Функция explode() и implode().
- Функция trim(), ltrim(), rtrim().
- Функция strtolower() и strtoupper().
- Функция ucfirst() и ucwords().
- Функция str_repeat().
- Модуль 9: Суперглобальные переменные
- Модуль 10: Работа с формами
- Модуль 11: Работа с файлами
- Модуль 12: Дата и время
- Модуль 13: Регулярные выражения
- Модуль 14: Сессии и Cookie
- Модуль 15: Include и Require
- Модуль 16: Объектно-ориентированное программирование
- Модуль 17: Пространства имен
- Модуль 18: Обработка ошибок и исключений
- Модуль 19: Работа с JSON и XML
- Модуль 20: Работа с базами данных MySQLi
- Модуль 21: PDO - PHP Data Objects
- Модуль 22: Composer и зависимости
- Модуль 23: cURL и HTTP запросы
- Модуль 24: REST API
- Модуль 25: Безопасность
- Модуль 26: Генераторы и итераторы
- Модуль 27: Reflection API
- Модуль 28: Работа с изображениями
- Модуль 29: Отправка email
- Модуль 30: Паттерны проектирования
- Модуль 31: Тестирование
- Модуль 32: Продвинутые возможности PHP 8+
Функция с одним параметром
Создайте простую функцию `greet`, которая принимает один параметр (имя пользователя) и выводит персональное приветствие. Вам нужно правильно объявить параметр и использовать его внутри функции.
<?php
function greet(input1S) {
echo "Hello, " . input2S . "!";
}
// Вызываем функцию, передавая ей имя "Alice"
greet("Alice");
?>Ошибка в списке параметров
Эта функция предназначена для вычисления площади прямоугольника, принимая на вход ширину и высоту. Однако в объявлении функции допущена синтаксическая ошибка. Исправьте строку с объявлением функции.
<?phpfunction calculateArea($width $height) { return $width * $height;} echo calculateArea(10, 5);?>Какой будет результат вычисления?
Проанализируйте функцию `formatPrice`, которая добавляет к числу символ валюты. Затем посмотрите, с какими аргументами она вызывается, и выберите правильный результат, который будет выведен на экран.
<?php
function formatPrice($price, $currencySymbol) {
return $price . $currencySymbol;
}
echo formatPrice(1500, '$');
?>Параметры со значением по умолчанию
Создайте функцию `sendMessage`, которая принимает сообщение и имя отправителя. Параметр "отправитель" (`$sender`) должен быть необязательным и по умолчанию иметь значение 'Admin'. Соберите объявление этого параметра из токенов.
<?php
function sendMessage($text, input1S input2S input3S) {
echo "From: $sender; Message: $text";
}
// Вызываем функцию без указания отправителя
sendMessage("System update");
?>Вызов с параметром по умолчанию
Функция `power` возводит число в степень. Второй параметр, `$exponent`, по умолчанию равен 2. Что выведет код, если вызвать эту функцию, передав только один аргумент — число 8?
<?php
function power($base, $exponent = 2) {
return $base ** $exponent;
}
echo power(8);
?>Строгая типизация параметров
Сделаем нашу функцию `calculateAverage` более предсказуемой. Укажите, что она должна принимать два числовых (`float`) параметра. Добавьте указание типов в объявлении функции.
<?php
declare(strict_types=1);
function calculateAverage(input1S $a, input2S $b) {
return ($a + $b) / 2;
}
echo calculateAverage(10.5, 20.5);
?>Передача параметра по ссылке
Функция `addTax` должна изменять переданную в нее переменную `$price`, добавляя к ней 20%. Однако после вызова функции значение переменной `$price` не меняется. Исправьте объявление функции, чтобы она изменяла исходную переменную.
<?phpfunction addTax($value) { $value *= 1.20;} $price = 100;addTax($price);echo $price;?>Переменное число параметров (Variadic)
Напишите функцию `findMax`, которая может принимать любое количество числовых аргументов и возвращать максимальный из них. Для этого нужно собрать все аргументы в один массив с помощью специального синтаксиса.
<?php
function findMax(input1S $numbers) {
return max(input2S);
}
echo findMax(10, 2, 88, 5, 34);
?>