PHP: Параметры по умолчанию
Некоторые функции в PHP имеют необязательные параметры. Это значит, что для них заранее задано значение по умолчанию, и при вызове можно этот параметр не указывать.

Рассмотрим встроенную функцию round(), которая округляет число:
<?php
$result = round(10.25, 0); // 10Мы передали в нее два значения:
- Число, которое нужно округлить.
- Точность округления,
0означает, что округление будет до целого числа.
Так как чаще всего нужно именно округление до целого, создатели функции round() сделали второй параметр необязательным и задали ему значение по умолчанию 0. Поэтому результат будет тем же, даже если второй параметр не указывать:
<?php
$result = round(10.25); // 10Если нужна другая точность, то ее можно указать явно:
<?php
// округление до одного знака после запятой
$result = round(10.25, 1); // 10.3round(10.25, 1) → аргументы: 10.25, 1 → 10.3
round(10.25) → аргументы: 10.25, (0) → 10
└── значение по умолчаниюКоличество необязательных параметров зависит от конкретной функции, но обязательные всегда идут перед необязательными.
Сигнатура функции
У каждой функции есть сигнатура, содержащая описание ее имени, параметров и порядка их использования. Сигнатура помогает понять, какие данные функция ожидает и что будет происходить, если параметры не указаны.
Посмотрим на документацию для функции round(). Если ее немного упростить, сигнатура выглядит так:
round(int|float $num, int $precision = 0): floatФункция называется round. Параметр $num обязателен — он принимает число для округления (целое или дробное). Параметр $precision имеет значение по умолчанию 0, то есть необязателен; если его не указать, округление произойдет до целого числа. После двоеточия указан тип результата — функция возвращает дробное число (float).
В полной сигнатуре из документации есть еще один необязательный параметр, который управляет режимом округления. Он нужен редко, поэтому мы его пока не рассматриваем.
Как работать с новыми функциями
Когда вы встречаете новую функцию, можно использовать простой паттерн:
- Открыть документацию и найти сигнатуру функции.
- Посмотреть примеры использования.
- Перейти в интерактивную оболочку PHP (она запускается командой
php -a) и попробовать вызвать функцию с разными аргументами.
Такой подход помогает быстро разобраться, как именно работает функция, какие у нее обязательные и необязательные параметры и какие результаты она возвращает.
Задание
В коде заданы данные об автомобильной поездке: расстояние, расход топлива, цена топлива и количество пассажиров.
Вычислите и выведите на экран три значения:
- Объем топлива в литрах, необходимый для поездки. Округлите до одного знака после запятой.
- Общую стоимость поездки в рублях. Округлите до двух знаков после запятой.
- Стоимость поездки для каждого пассажира в рублях. Округлите до целого числа, вызвав
round()без второго аргумента.
Каждое значение выводится на отдельной строке.
distance ──────┐
├──→ fuel ──────┐
fuelConsumption ───┘ ├──→ tripCost ──────┐
│ ├──→ perPerson
fuelPrice ─────────────────────┘ │
│
passengers ────────────────────────────────────────┘Полезное
PHP: Параметры по умолчанию
Некоторые функции в PHP имеют необязательные параметры. Это значит, что для них заранее задано значение по умолчанию, и при вызове можно этот параметр не указывать.

Рассмотрим встроенную функцию round(), которая округляет число:
<?php
$result = round(10.25, 0); // 10Мы передали в нее два значения:
- Число, которое нужно округлить.
- Точность округления,
0означает, что округление будет до целого числа.
Так как чаще всего нужно именно округление до целого, создатели функции round() сделали второй параметр необязательным и задали ему значение по умолчанию 0. Поэтому результат будет тем же, даже если второй параметр не указывать:
<?php
$result = round(10.25); // 10Если нужна другая точность, то ее можно указать явно:
<?php
// округление до одного знака после запятой
$result = round(10.25, 1); // 10.3round(10.25, 1) → аргументы: 10.25, 1 → 10.3
round(10.25) → аргументы: 10.25, (0) → 10
└── значение по умолчаниюКоличество необязательных параметров зависит от конкретной функции, но обязательные всегда идут перед необязательными.
Сигнатура функции
У каждой функции есть сигнатура, содержащая описание ее имени, параметров и порядка их использования. Сигнатура помогает понять, какие данные функция ожидает и что будет происходить, если параметры не указаны.
Посмотрим на документацию для функции round(). Если ее немного упростить, сигнатура выглядит так:
round(int|float $num, int $precision = 0): floatФункция называется round. Параметр $num обязателен — он принимает число для округления (целое или дробное). Параметр $precision имеет значение по умолчанию 0, то есть необязателен; если его не указать, округление произойдет до целого числа. После двоеточия указан тип результата — функция возвращает дробное число (float).
В полной сигнатуре из документации есть еще один необязательный параметр, который управляет режимом округления. Он нужен редко, поэтому мы его пока не рассматриваем.
Как работать с новыми функциями
Когда вы встречаете новую функцию, можно использовать простой паттерн:
- Открыть документацию и найти сигнатуру функции.
- Посмотреть примеры использования.
- Перейти в интерактивную оболочку PHP (она запускается командой
php -a) и попробовать вызвать функцию с разными аргументами.
Такой подход помогает быстро разобраться, как именно работает функция, какие у нее обязательные и необязательные параметры и какие результаты она возвращает.
Задание
В коде заданы данные об автомобильной поездке: расстояние, расход топлива, цена топлива и количество пассажиров.
Вычислите и выведите на экран три значения:
- Объем топлива в литрах, необходимый для поездки. Округлите до одного знака после запятой.
- Общую стоимость поездки в рублях. Округлите до двух знаков после запятой.
- Стоимость поездки для каждого пассажира в рублях. Округлите до целого числа, вызвав
round()без второго аргумента.
Каждое значение выводится на отдельной строке.
distance ──────┐
├──→ fuel ──────┐
fuelConsumption ───┘ ├──→ tripCost ──────┐
│ ├──→ perPerson
fuelPrice ─────────────────────┘ │
│
passengers ────────────────────────────────────────┘Полезное
Ваше упражнение проверяется по этим тестам
<?php
namespace HexletBasics\CallingFunctions\DefaultParams;
use HexletBasics\Exercise\TestCase;
class SolutionTest extends TestCase
{
public function test()
{
$expected = "37.8\n2426.76\n607\n";
$this->assertOutput($expected);
}
}Решение учителя откроется через:
20:00
