Доступ к параметрам функций

Задача
Необходимо получить доступ к значениям, переданным в функцию.

Решение
Этот доступ можно получить посредством имен из прототипа функции:

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 это тоже справедливо, но разница в скорости минимальная. По этой причине мы предлагаем прибегать к передаче по ссылке только при реальной необходимости и никогда в целях улучшения производительности.

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела PHP на эту тему:
Возвращение более одного значения
Возвращение значений по ссылке
Возвращение информации об ошибке
Вызов переменных функций
Доступ к глобальной переменной внутри функции

Вернуться в раздел: PHP / 6. Функции