Функция может иметь ноль или несколько параметров:
Если у функции несколько параметров, их необходимо разделять запятой (,).
Пример: функция конкатенации строк
Функция concat() принимает два параметра: $str1 и $str2.
При вызове функции нужно передать два аргумента, соответствующих параметрам:
В этом примере переменная $str1 получит значение 'Добро пожаловать ', а $str2 получит 'Админ'.
Если передать меньше аргументов, чем требуется, PHP выдаст ошибку.

Вертикальное оформление списка аргументов

Для улучшения читаемости длинные списки аргументов можно разбивать на несколько строк:
Это считается хорошей практикой при большом количестве аргументов.

Завершающая запятая

С версии PHP 7.0 в списке аргументов можно использовать завершающую запятую, которую интерпретатор игнорирует:
С PHP 8.0 завершающая запятая допустима и в списке параметров функции:

Передача аргументов по значению

Рассмотрим пример:
Вывод:

Как это работает

  1. Определяется переменная $counter со значением 1.
  2. Создаётся функция increase(), которая увеличивает переданный аргумент на 1 и выводит его.
  3. Функция вызывается с аргументом $counter.
  4. После вызова функции выводится значение $counter.
Внутри функции значение увеличивается, но вне функции переменная не меняется. Это происходит потому, что аргумент передаётся по значению: функция работает с копией переменной, а не с оригиналом.

Передача аргументов по ссылке

Чтобы функция могла изменять исходную переменную, аргумент нужно передавать по ссылке. Для этого перед именем параметра ставится амперсанд (&):
Вывод:
Теперь изменение переменной внутри функции отражается и снаружи.

Краткое резюме

  • Параметры функции разделяются запятой (,). С PHP 8.0 допустима завершающая запятая.
  • По умолчанию аргументы передаются по значению.
  • Для передачи по ссылке используйте амперсанд (&) перед именем параметра.