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 это тоже справедливо, но разница в скорости минимальная. По этой причине мы предлагаем прибегать к передаче по ссылке только при реальной необходимости и никогда в целях улучшения производительности.
Теги:
number, ссылке, letter, commercial, print, значения, sponsorship, функции, прототипа, function, копию, имеет, функцию, необходимости, доступ, получить, значению, another, Например, копией, влияют, Доступ, изменения, Поэтому, обработки, равно, предоставляет, создает, означает, передали, передачи, языках, передача, преимущество, значительно
Добавлено: 21 Июля 2018 12:48:15 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...