【问题标题】:PHP references and pointers [duplicate]PHP引用和指针[重复]
【发布时间】:2016-08-11 17:35:52
【问题描述】:

指针和引用有什么区别吗? 我应该什么时候使用参考文献?

这个语法实际上是做什么的?

$a = &$b

【问题讨论】:

  • 这个问题是关于通过引用传递一个函数。这里解释变量、指针和引用的区别。

标签: php pointers reference


【解决方案1】:

不要使用引用!它们会导致意想不到的行为。

PHP.net经常提到的 PHP 5 OOP 的一个关键点是“对象默认通过引用传递”。这并不完全正确。

有指针和引用,你可以看下面的例子。

  • $a = new stdClass($a 现在是指向#168 的指针
  • $b = $a($b 现在是一个新的 指针,但它仍然指向#168)
  • $c = &$a($c 现在是指针 $a 的引用
  • 你无法区分 $b 和 $c
  • $a = null,它不再是指针,只是 null
  • #168 被保留,因为还有指向它的指针
  • $b 仍然是指向 #168 的指针
  • $c 现在为空

这种行为很危险,因为它会改变你不接触的变量。

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

【讨论】:

    猜你喜欢
    • 2018-07-24
    • 1970-01-01
    • 2011-06-14
    • 2014-10-12
    • 2010-10-19
    • 1970-01-01
    • 2016-08-26
    • 1970-01-01
    相关资源
    最近更新 更多