如果我有这个数组,
ini_set('display_errors', true);
error_reporting(E_ALL);
$arr = array(
'id' => 1234,
'name' => 'Jack',
'email' => 'jack@example.com',
'city' => array(
'id' => 55,
'name' => 'Los Angeles',
'country' => array(
'id' => 77,
'name' => 'USA',
),
),
);
我可以得到国家名称
$name = $arr['city']['country']['name'];
但是如果 country 数组不存在,PHP 会产生警告:
Notice: Undefined index ... on line xxx
当然我可以先做测试:
if (isset($arr['city']['country']['name'])) {
$name = $arr['city']['country']['name'];
} else {
$name = ''; // or set to default value;
}
但这是低效的。$arr['city']['country']['name']
如果它不存在,那么在不生成 PHP 通知的情况下获得的最佳方法是什么?