Передача по ссылке и по значению php

Опубликовано: 2013-06-27 14:12:43

Когда вы пишем $a = $b, то происходит копирование значения из ячейки c одним адресм в ячейку с другим адресом $b. Это по большей части удобно и главное безопасно потому что изменяя $a мы не меняем $b и наоброт, но медленее, чем второй вариант.

Первый вариант. Копирование по значению.

[php]

<?php

$arr = array(1,2,3,4,5);

$arr2 = $arr;

$arr[1] = 3;



print_r($arr);

print_r($arr2);

[/php]

Второй вариант это передача данных по ссылке. Здесь копирование ячеек не происходит и поэтому это быстрее, но есть подводные камни, которые следует учитывать, так как если этогоне сделать, то последствия могут быть очень серьезные. Серьезными они будут потому, что вы не сразу поймете причину по которой у вас программа работает не так, как вы ожидаете.

Смотрите пример "копирование по ссылке".

[php]

<?php

$arr = array(1,2,3,4,5);

$arr2 = &amp;$arr;

$arr[1] = 3;



print_r($arr);

print_r($arr2);

[/php]

Берем массив arr и присваиваем ему какое-то начальное значение (1,2,3,4,5). Потом заводим массив arr2 и говорим интерпретатору что arr2 указывает на arr. А потом меняем первый жлемент массива arr и далее смотрим на результаты вывода. Изменения в массиве arr затронули не только массив arr, но и arr2.

Прошлые записи

  1. Подарок из Грузии
  2. Уборка придомовой территории
  3. Терпеть нельзя, действовать
  4. Курс 'Upgrade руководителя' от Rubius Academy
  5. Мечты об идеальном Томске. Общественный транспорт и проблема пробок
  6. Arch Linux вместо Linux Mint
  7. Highload 2017 vs Codefest 2018
  8. Детализация по звонкам Теле2, совершенным более полугода назад
  9. Побыть туристом в своем городе
  10. Космология, Байкал, Математика, Минимализм
  11. Уроки математики - Youtube-канал