我想知道为什么当我试图获取非数组变量的索引时,PHP没有显示“ Notice”警报。 这是我用来测试的代码:
echo ">>> Empty array\n";
$foo = array();
var_dump($foo['var']);
echo "\n>>> Boolean\n";
$foo = false;
var_dump($foo['var']);
echo "\n>>> Null\n";
$foo = null;
var_dump($foo['var']);
echo "\n>>> Int\n";
$foo = 1;
var_dump($foo['var']);
输出:
>>> Empty array
PHP Notice: Undefined index: var in /var/www/test.php on line 3
NULL
>>> Boolean
NULL
>>> Null
NULL
>>> Int
NULL
答案 0 :(得分:0)
您正在尝试使用数组取消引用(访问数组的结果)。根据{{3}}的实现,我们可以看到这仅适用于三种类型:数组,字符串和对象。功能的默认设置是PHP仅返回未定义的变量。
例如,如果您要对String尝试相同的技巧,则可以使用数组解引用的实现,因此也会出现错误:
<?php
echo "\n>>> String\n";
$foo = "test";
var_dump($foo['var']);
将输出:
>>> String
Warning: Illegal string offset 'var' on line 4