2011-10-08 85 views
0

如何删除此警告?通过参考变量警告结束()

严格的标准:只有变量应该按引用传递在

我有一些代码从一个多维数组获得独特的值,然后得到最后一个索引。

$catchColors[]= array(); 

for ($i = 0; $i < $totalRows; $i++) { 
    $catchColors[$i] = $postData[$i]['ColorID']; 
} 

$result = array_unique($catchColors); 
print_r($result); 

print end(array_keys($result)); 

它仍然返回值,但是如何删除警告?

+3

不应该是'$ catchColors = array();'? –

+0

error_reporting或@ – steve

+0

[严格标准:只有变量应该通过引用传递]的可能重复(http://stackoverflow.com/questions/2354609/strict-standards-only-variables-should-be-passed-by-reference ) –

回答

4

这是因为函数end的参数将通过引用传递。因此,它不可能是另一个功能的回报,它应该像通知所说的那样是一个实际的变量。

因此,一个解决方案是创建一个临时变量来保存键的数组,然后在该数组中执行end

$keys = array_keys($result); 
print end($keys);