所以我有这个有点烦人的问题:说我有这样的foreach循环:
foreach ($arr as $key=>$value) {
do_something($key);
}

在我的eclipse环境中,我打开了显示未使用变量警告的功能,这非常有用。然而,它抱怨所有这样的事件,其中$value
未在循环中使用。
我想知道是否有一些语法我不会使用它,就像list()
一样:
list(,,$my_var) = some_func();

//这些返回一个包含3个元素的数组,但我只需要最后一个
注意:显而易见的是使用array_keys()
,但我不想要函数调用;我只是问是否有我不知道的简写,或类似的东西。这就是为什么问题PHP foreach that returns keys only不能涵盖我所要求的内容。
答案 0 :(得分:1)
TBH,我找不到任何资源来支持这个答案,就我的测试而言,它的工作正常,但是我不能说这是否是或者不推荐给我使用。(可能不是)
以下是我提出的建议:
$arr = array('kN1' => '50', 'kN2' => 400);
//$arr = array('50', 400);
foreach ($arr as $var => $var) { // use same variable for both key and value
print_r($var);
echo '<br>';
}
// kN1
// kN2
答案 1 :(得分:0)
要摆脱警告而不引入过多开销,只需在循环完成后取消设置未使用的变量即可。
foreach ($arr as $key => &$val) {
print_r($key);
}
unset($val);
顺便说一句:我相信应该使用对未使用变量(&$val
而不是$val
的引用)。否则,您可能会在每次迭代时最终生成变量的完整副本,并且这可能是一项昂贵的操作。