Разработчику. Сборник рецептов PHP
Задавайте вопросы

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

Вернуться назад

Задача

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

Решение

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

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

Вернуться назад

Рейтинг@Mail.ru

Яндекс.Метрика

Индекс цитирования

Рейтинг Сайтов ДОСКИ.РУ