Головна » Файли » PHP » PHP

Передача по ссылке
03.06.2012, 22:34

Когда в PHP перед именем переменной ставится символ &, парсер знает, что тем самым передается не сама переменная, а ссылка на нее. Это понятие может восприниматься с трудом, поэтому давайте вернемся к метафоре со спичечным коробком, которая использовалась . Представьте, что вы не вынимаете клочок бумаги из коробка, не читаете то, что на нем написано, не копируете эту надпись на другой клочок бумаги, не возвращаете оригинал в коробок и не передаете копию функции, а просто привязываете нитку к исходному клочку бумаги и передаете функции второй конец этой нитки (см. рис. 5.2). Теперь, для того чтобы найти данные, к которым она обращается, функция может проследовать по нитке. Таким образом исключаются все издержки на создание копии переменной, предназначенной только для того, чтобы в функции можно было воспользоваться ее значением. Более того, теперь функция может изменить значение переменной. 

Пример.

?php

$a1 = "WILLIAM";

$a2 = "henry";

$a3 = "gatES";

echo $al . " " . $a2 . " " . $a3 . "<br />";

fix_names($a1, $a2, $a3);

echo $a1 . " " . $a2 . " " . $a3;

function fix_names (&$n1, &$n2, &$n3)

{

$n1 = ucfirst(strtolower($n1));

$n2 = ucfirst(strtolower($n2));

$n3 = ucfirst(strtolower($n3));

}

?>

Вместо того чтобы передавать строки непосредственно функции, сначала они присваиваются в качестве значений переменным и выводятся на экран, для того чтобы посмотреть их состояние «до». Затем, как и раньше, вызывается функция, но теперь перед именем каждого параметра. ставится символ &, предписывающий PHP передать ей только ссылки на значения переменных.     

    Теперь к переменным $n1, $n2 и'$n3 привязаны «ниточки», ведущие к значениям переменных $a1, $a2 и $аЗ. Иными словами, существует одна группа значений, но два набора имен переменных, позволяющих к ним обратиться. 

    Поэтому функции fix_names нужно только присвоить новые значения переменным $n1, $n2 и $n3, для того чтобы обновить значения переменных $a1, $а2 и $a3. В результате выполнения этого кода будут выведены следующие строки: 

WILLIAM henry gatES 

William Henry Gates 

    Как видите, в обеих инструкциях echo используются только значения переменных $a1, $а2 и $a3. 

Категорія: PHP | Додав: [UA]Admin | Теги: php, Передача, ссылке, метафоре, парсер, символ
Переглядів: 1498 | Завантажень: 0 | Коментарі: 1
Всього коментарів: 0
Додавати коментарі можуть лише зареєстровані користувачі.
[ Реєстрація | Вхід ]

Оцініть наш сайт
Всего ответов: 43
Реклама на сайті Чорнобай - 063-878-77-71 Ковка Киев
Найближчі населені пункти до селища міського типу    Чорнобай: Ви власник цих сайтів, пропоную співпрацю! м. Золотоноша20 км
смт. Оржиця29 км
м. Черкаси32 км
смт. Драбів34 км
смт. Новооржицьке48 км
м. Гребінка50 км
с. Великі Липняги56 км
м. Сміла59 км
м. Лубни61 км
Субота
20.04.2024
12:48

[ Управління профілем ]
Онлайн радио

OnLine
Онлайн всього: 1
Гостей: 1
Користувачів: 0

Користувачів онлайн:
На сайті Чорнобай були:

Ремонт компютерів настройка та устаноака систем, програм та антивірусів, створення рефератів, дипломних, курсових, робіт.Банери та дизайн. Створення сайтів Черкаси - Чорнобай тел. - 063 - 878 - 77 - 71 - 096 - 180 - 12 - 12