English

Передача по ссылке и по значению 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, совершенным более полугода назад
  2. Побыть туристом в своем городе
  3. Космология, Байкал, Математика, Минимализм
  4. Уроки математики - Youtube-канал
  5. Почему я считаю, что бойкотировать выборы это плохая идея
  6. Ксения Собчак в гостях у Познера
  7. Один из способов решения психологических проблем в семье
  8. Стрельба из пистолета Ярыгина
  9. Опыт участия в Teamlab в роли наставника
  10. Highload 2017. Как это было.
  11. Авиатор. Е. Водолазкин. Отзыв