注意警报试图获取非数组变量的索引

时间:2019-01-16 20:34:26

标签: php

我想知道为什么当我试图获取非数组变量的索引时,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

1 个答案:

答案 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