今天,我测试了以下代码:
<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;
。
为什么会发生这种情况?这背后的理性是什么?