Аргументы, переменные и инструкции

Новички иногда пытаются сделать примерно такое определение функции:

function showDate("Today is: December 5")
{
    // какой-нибудь код
}

Запустить код не получится — он содержит синтаксическую ошибку. Вместо переменной в аргументе написана строка, то есть значение.

Аргумент должен быть переменной, иначе он не сможет быть аргументом, то есть чем-то, что принимает значение при вызове.

Если же вам нужна какая-то информация в функции, и вы заранее знаете какая именно, то аргумент для этого не нужен, ведь мы уже умеем сохранять значения для последующего использования — достаточно создать переменную в самом теле:

function showDate()
{
    $text = 'Today is: December 5';
    // какой-нибудь код
}

Обратите внимание: после определения функции (после закрывающей фигурной скобки) мы не ставим ;.

Символ ; ставится в конце выражений. Определение функции — не выражение, а инструкция (указание интерпретатору). Соответственно, мы не можем его использовать в составе других выражений и ему не нужна ; в конце.

Понятие «создать функцию» имеет много синонимов: «реализовать», «определить» и даже «заимплементить» (от слова implement). Все они встречаются в повседневной практике на работе.

Задание

Сэм составляет множество карт, и ему часто нужно выводить на экран повторяющиеся символы для визуализации маршрутов.

В документации PHP он нашёл функцию str_repeat. Она принимает два аргумента: строку и число, и возвращает повторяющуюся строку. Вот как он использует её:

<?php

print_r(str_repeat("=-", 4));
=-=-=-=-

Сэм не очень доволен. Ему нужно нарисовать сотни маршрутов разной длины с разными символами. Неудобно вызывать сотни раз str_repeat внутри вызова print_r.

Напишите для Сэма функцию printSeq, которая сама выводит на экран получившиеся повторения. Она принимает два аргумента — строку и число, и выводит повторяющуюся строку на экран. Для генерации строки используйте str_repeat.

Вот пример того, как Сэм будет использовать написанную вами printSeq:

<?php

printSeq("=-", 4);
=-=-=-=-

Exercise available only for signed users