nastya97core
@nastya97core
Начинающий программист

Как указать дефолтное значение переменной в функции?

Здравствуйте. Я знаю такую конструкцию:
function sa($a, $b = 3) {
	echo $a;
	echo $b;
}

sa("gaga"); // gaga3

Здесь $b, если не определено, то оно принимает значение 3. Но как быть, если у меня есть два дефолтных значения, а передавать второе я не хочу?
function sa($a, $b = 3, $c = 5) {
	echo $a;
	echo $b;
	echo $c;
}

sa("gaga",null ,"boba"); // gagaboba

Возвращается gagboba, а я хотела, чтобы вернулось gaga3boba

Как быть?
  • Вопрос задан
  • 426 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега PHP
♬♬
в PHP 8 можно так:
function sa($a, $b = 3, $c = 5) {
  echo $a;
  echo $b;
  echo $c;
}

sa("gaga", c: "boba"); // gaga3boba
см. Именованные аргументы

Начиная с PHP 7.0 можно проверять значения на null и подставлять дефолты:
function sa($a, $b, $c) {
    $b ??= 3; // если NULL, то станет 3
    $c ??= 5;
    // echo ...
}

sa("gaga", null ,"boba");
см. Null coalescing
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
part_os
@part_os
Сложное в простом
если вы используете PHP 8 можете воспользоваться именованными аргументами
https://www.php.net/releases/8.0/ru.php#named-arguments
а если версия ниже то вы можете не передавать аргументы, только если они находятся в конце списка
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы