Задача
Необходимо получить доступ к значениям, переданным в функцию.
Решение
Этот доступ можно получить посредством имен из прототипа функции:
function commercial_sponsorship($letter, $number) {
print "This episode of Sesame Street is brought to you by ";
print "the letter $letter and number $number.\n";
}
commercial_sponsorship('G', 3);
commercial_sponsorship($another_letter, $another_number);
Обсуждение
Внутри функции не имеет значения, как в нее передавались параметры: в виде строк, чисел, массивов или переменных других типов. Можно считать, что они имеют те же самые типы, и ссылаться на них по именам из прототипа.
В противоположность языку C, нет необходимости (да в действительности, и возможности) описывать тип передаваемой переменной. PHP следит за этим за вас.Кроме того, если не определено обратное, все значения передаются в функцию и из функции по значению, а не по ссылке. Это означает, что PHP создает копию значения и предоставляет эту копию для обработки. Поэтому любые изменения, происходящие с копией, не влияют на оригинальное значение. Например:
function add_one($number) {
$number++;
}
$number = 1;
add_one($number);
print "$number\n";
1
Если бы переменную передали по ссылке, то значение переменной $number было бы равно 2.
Во многих языках передача переменных по ссылке имеет еще одно преимущество – она значительно быстрее передачи по значению. И хотя для PHP это тоже справедливо, но разница в скорости минимальная. По этой причине мы предлагаем прибегать к передаче по ссылке только при реальной необходимости и никогда в целях улучшения производительности.