В PHP ссылка используется для создания алиаса или указания на переменную. Это значит, что обе переменные будут указывать на одни и те же данные. Изменения, произведённые через одну переменную, отразятся и на другой.
# Пример без ссылки $a = 10; $b = $a; $b = 20; echo $a; # Выведет 10 # Пример со ссылкой $a = 10; $b = &$a; $b = 20; echo $a; // Выведет 20, так как $b ссылается на $a
1. Передача по ссылке в функцию
Иногда бывает нужно модифицировать переменную внутри функции:
function incrementValue( &$value )
{
$value++;
}
$count = 0;
incrementValue( $count );
// $count теперь равен 1
2. Оптимизация памяти
Если у вас есть большие массивы или объекты, ссылки позволяют избежать копирования данных:
$bigArray = range(1, 1000000); $aliasArray = &$bigArray;
3. Ссылки в цикле
Можно изменять элементы массива прямо в цикле:
$numbers = [ 1, 2, 3, 4 ];
foreach( $numbers as &$num )
{
$num *= 2;
}
unset( $num ); // Отсоединяем ссылку
echo '<pre>', var_dump( $numbers ) ,'</pre>';
// array(4) {
// [0]=>
// int(2)
// [1]=>
// int(4)
// [2]=>
// int(6)
// [3]=>
// int(8)
// }
4. Безопасность и валидация:
function secureIncrement( &$value )
{
if( is_numeric( $value ) )
{
$value++;
}
else
{
throw new InvalidArgumentException( "Expected a number" );
}
}
$input = $_GET['count'] ?? 0;
secureIncrement( $input );
Комментарии
0Нашли ошибку или хотите дополнить материал?