有人可以解释一下为什么这段代码会在没有任何错误或警告的情况下打印出来吗?
如果我在数组上没有引用的情况下使用相同的代码,那么是否会给我错误并且通知索引不存在。
解释这种行为的两者有什么区别,这是一个错误吗?
我用php 7.0测试了这段代码
<?php
error_reporting(E_ALL);
ini_set('display_errors', true);
$bar = [];
$foo = &$bar['key'];
echo array_key_exists("key", $bar)? "true" : "false";
答案 0 :(得分:2)
不是真正的答案,但是:
Referring to this answer,&$bar['key']
在$ bar中创建一个值为null的索引,因为key
之前不存在。现在它已经打印出true
了。
记住这些参考文献: