您可以通过设置适当的错误级别来使警告静音,但这并不是一个好主意。我个人使用一个小功能来简化打字:
/**
* nullsafe
*
* returns values from array like objects
*
* Usage:
* nullsafe($array, 'key'); - returns the $array['key'] if it is set
* nullsafe($array, 'key', 'foo'); - returns the $array['key'] if it is set, 'foo' otherwise
* nullsage($array, array('level0', 'level1')); returns $array['level0']['level1'] if it is set, null otherwise
*
* returns value indexed by $key from the $from, or the $default if its not present
* if the key is an array then it will descend it into the $from like $from[$key[0]][$key[1]][$key[2]]...
*
* @param mixed $from
* @param mixed $key
* @param mixed $default
* @return mixed
*/
function nullsafe($from, $key, $default = null) {
if (!is_array($key)) {
if (isset($from[$key])) {
return $from[$key];
}
} else {
foreach ($key as $k) {
if (!isset($from[$k])) {
return $default;
} else {
$from = $from[$k];
}
}
return $from;
}
return $default;
}