Что означает «&» в «& $ var» в PHP? [Дубликат]

0

Что означает "&" в "& $ var" в PHP? Может кто-нибудь помочь мне объяснить это дальше. Заранее спасибо.

Теги:
conditional

2 ответа

6

Это означает передать переменную по ссылке, а не передавать значение переменной. Это означает, что любые изменения этого параметра в функции preparese_tags остаются, когда поток программы возвращается к вызывающему коду.

function passByReference(&$test) {
    $test = "Changed!";
}

function passByValue($test) {
    $test = "a change here will not affect the original variable";
}

$test = 'Unchanged';
echo $test . PHP_EOL;

passByValue($test);
echo $test . PHP_EOL;

passByReference($test);
echo $test . PHP_EOL;

Вывод:

Unchanged

Unchanged

Changed!
0

Вы можете передать переменную функции по ссылке. Эта функция сможет изменить исходную переменную.

Вы можете определить проход по ссылке в определении функции с помощью &

например..

<?php
function changeValue(&$var)
{
    $var++;
}

$result=5;
changeValue($result);

echo $result; // $result is 6 here
?>

По умолчанию аргументы функции передаются по значению (так что, если значение аргумента внутри функции изменяется, оно не изменяется вне функции). Чтобы позволить функции изменять свои аргументы, они должны передаваться по ссылке.

Чтобы аргумент функции всегда передавался по ссылке, добавьте амперсанд (&) к имени аргумента в определении функции.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню