2016-08-11 5 views
0

Есть ли разница между указателями и ссылками? Когда следует использовать ссылки?Ссылки и указатели PHP

Что на самом деле этот синтаксис?

$a = &$b 
+0

Этот вопрос о переходе по ссылке на функцию. Здесь объясняется разница между переменной, указателем и ссылкой. –

ответ

1

Не используйте ссылки! Они могут привести к неожиданному поведению.

По состоянию на PHP.net: Одним из ключевых моментов PHP 5 OOP, который часто упоминается, является то, что «объекты передаются по ссылкам по умолчанию». Это не совсем так.

Есть указатели и ссылки, вы можете увидеть его ниже.

  • $ а = новый StdClass ($ в настоящее время является указатель на # 168)
  • $ Ь = $ а ($ Ь теперь новыйуказатель, но он по-прежнему указывает на # 168)
  • $ с = & $ а ($ с теперь ссылка указателю $ а)
  • вы не можете отличить $ Ь от $ с
  • $ а = NULL, это S просто не указатель больше, просто пустой
  • # 168 сохраняется, потому что есть указатели на его влево
  • $ б еще указатель # 168
  • $ с теперь пустой

Такое поведение опасно, поскольку оно изменяет переменную, которую вы не трогаете.

$b === $c // returns true 
$youCantSayThisVariableIsRelated = null 
$b === $c // returns false! 

enter image description here

Смежные вопросы