为什么引用未定义的索引不会发出警告?

时间:2018-01-19 16:16:36

标签: php arrays reference

今天,我测试了以下代码:


<link rel="icon" href="http://some-site.com/favicon.png" sizes="32x32">

我注意到它没有发出警告,只是引用了未定义的索引。

事实上,在之后设置索引将允许您引用它,就像它之前存在一样(????):

<?php
    $a = array();
    $b = &$a[0]; // no warning???

    echo $b;

此行为与PHP 4.4.9一直一直到PHP 7.1.0。

此外,运行<?php $a = array(); $b = &$a[0]; // no warning echo $b; // echoes nothing $a[0] = 1; echo $b; // echoes 1 将返回gettype($b)

然而,没有参考:

NULL

我收到警告<?php $a = array(); $b = $a[0]; echo $b;

为什么会发生这种情况?这背后的理性是什么?

0 个答案:

没有答案