Ниже приведен пример функции concat(), которая объединяет две строки с использованием разделителя:
<?php
function concat($str1, $str2, $delimiter)
{
return $str1 . $delimiter . $str2;
}
Когда вы вызываете функцию concat(), вам нужно передать ровно три аргумента. Например:
<?php
function concat($str1, $str2, $delimiter)
{
return $str1 . $delimiter . $str2;
}
$message = concat('Hi', 'there!', ' ');
echo $message;
Однако вы обнаружите, что часто используете пробел в качестве разделителя. И передача пробела при каждом вызове функции повторяется.
Вот почему иногда удобно указывать параметры по умолчанию. PHP позволяет указать аргумент по умолчанию для параметра. Например:
<?php
function concat($str1, $str2, $delimiter = ' ')
{
return $str1 . $delimiter . $str2;
}
В этом примере параметр $delimiter принимает пробел в качестве аргумента по умолчанию.
Когда вы вызываете функцию concat() и не передаете аргумент-разделитель, функция будет использовать пробел для $delimeter следующим образом:
<?php
function concat($str1, $str2, $delimiter = ' ')
{
return $str1 . $delimiter . $str2;
}
$message = concat('Hi', 'there!');
echo $message;
Вывод:
Hi there
Однако, если вы передадите аргумент для параметра $delimiter, функция вместо этого будет использовать этот аргумент:
<?php
function concat($str1, $str2, $delimiter = ' ')
{
return $str1 . $delimiter . $str2;
}
$message = concat('Hi', 'there!', ',');
echo $message;
Вывод:
Hi,there!
В этом примере мы передали запятую в качестве параметра $delimiter . Функция concat() использует запятую (,) вместо аргумента по умолчанию.
Когда вы указываете аргумент по умолчанию для параметра, параметр становится необязательным. Это означает, что вы можете передать значение или пропустить его.
Аргументы по умолчанию должны быть постоянными выражениями. Они не могут быть переменными или вызовами функций.
PHP позволяет использовать в качестве аргументов по умолчанию скалярное значение, массив и null.
При использовании параметров по умолчанию рекомендуется размещать их после параметров, не имеющих значений по умолчанию. В противном случае вы получите неожиданное поведение. Например:
<?php
function concat($delimiter = ' ', $str1, $str2)
{
return $str1 . $delimiter . $str2;
}
$message = concat('Hi', 'there!', ',');
echo $message;
Вывод:
there!Hi,