【问题标题】:Strange behaviour, assigning undefined variable by reference奇怪的行为,通过引用分配未定义的变量
【发布时间】:2013-09-19 17:48:51
【问题描述】:

我只是在探索符号表和变量容器如何与引用一起工作。我发现了

<?php    
   $a = & $b;    
?>

不会抛出“未定义变量:b in...”的通知,而

<?php    
   $a = $b;    
?>

会。

为什么?

【问题讨论】:

  • 最适合提出这个问题的人是 PHP 开发团队......他们是唯一能解释为什么选择做出这个决定的人,我们其他人只能推测
  • 我猜这是因为引用的工作方式。您将 $a$b 设置为指向相同的内存位置。

标签: php reference symbol-table


【解决方案1】:

来自手册:http://php.net/manual/en/language.references.whatdo.php

注意:如果您通过引用分配、传递或返回未定义的变量,它将被创建。

至于为什么,我只是推测 php 分配内存并分配 $a 和 $b 来查看内存中的那个点。不过,这是一个记录在案的行为。

【讨论】:

    猜你喜欢
    • 2012-07-11
    • 2016-07-12
    • 1970-01-01
    • 2021-11-19
    • 1970-01-01
    • 2015-02-20
    • 2015-09-13
    • 2012-04-22
    • 1970-01-01
    相关资源
    最近更新 更多