如果您尝试访问不存在的哈希中的密钥,我听说您会收到错误。
但是,我似乎只得到一个空字符串或空值。
示例:
<?php
$hash = array("abc" => 123,
"def" => 456
);
echo "a key that's in the hash: <" . $hash["abc"] . "><br />";
echo "a key that's not in the hash: <" . $hash["ghi"] . ">";
?>
输出结果为:
a key that's in the hash: <123>
a key that's not in the hash: <>
这里发生了什么?
我使用PHP v5.3.8。
答案 0 :(得分:4)
您可能隐藏了通知错误(更多信息here)。 把它放在脚本的顶部:
error_reporting(E_ALL);
ini_set('display_errors', true);
答案 1 :(得分:1)
正如Wesley van Opdorp所说,您当前的错误报告设置可能会隐藏通知错误。
您可以使用此代码段(位于脚本顶部)启用所有错误:
error_reporting(E_ALL);
ini_set('display_errors', true);
无论如何,我建议您通过isset()
检查某个密钥是否存在:
if ( isset($array['key']) )
{
/* exists */
}
else
{
/* doesn't exist */
}
答案 2 :(得分:0)
取决于 error_reporting 设置。
如果设置error_reporting = E_ALL
>php -d error_reporting='E_ALL' -r '$a=array(); print $a["b"];'
PHP Notice: Use of undefined constant b - assumed 'b' in Command line code on line 1
PHP Stack trace:
PHP 1. {main}() Command line code:0
....