php foreach 报 “Cannot create references to elements of a temporary array expression”

今天在项目中用php foreach数据库查询结果时,为了方便没有判断数据是否存在,直接用(array)强制转换数据时,刚开始网页始终打不开,就报502,一头懵,突然间php报“Cannot create references to elements of a temporary array expression”,找到报错行,原始代码如下:

foreach ((array) $net_arr as $k => &$val) {
    $network[$val['node_ip']][$val['ifname']] = $val;
}

后来改成如下代码 ,一切恢复正常。

if (!empty($net_arr)) {
    foreach ($net_arr as $k => &$val) {
        $network[$val['node_ip']][$val['ifname']] = $val;
    }
}

网上搜索一下,只在 http://www.laruence.com/2008/11/20/630.html [风雪之隅] 的博客找到一行php源码中报错语句描述,具体是什么原因没有细究,记录以提示自己以后写代码要严谨,一步一步写!!!