我有一个数组,我正在迭代使用for循环。该数组在每个元素上都有URL,需要作为参数传递给函数。
当我在迭代期间调用函数时,循环在第一次迭代后停止,并且不会在整个数组上继续。
当我尝试仅回显数组中的值并且不在循环中调用函数时,它可以正常工作。
如果我使用foreach循环,这是同样的问题。请帮忙。
这是我的代码
echo '<ol>';
for($i=0; $i < count($watchList); $i++){
saveProduct(getProductDetail($watchList[$i]));
echo ' <li>Product Saved '. $watchList[$i] .'</li>';
}
echo '</ol>';
答案 0 :(得分:2)
阵列可能不是连续的。你假设它从0-n开始,但情况可能并非如此。使用它,它应该工作:
echo '<ol>';
foreach($watchList as $key=>$watchItem){
saveProduct(getProductDetail($watchItem));
echo ' <li>Product Saved '. $watchItem .'</li>';
}
echo '</ol>';
答案 1 :(得分:1)
循环没问题。你正在打电话的功能一定有问题。
如果您还没有,请尝试启用错误报告。
ini_set(‘error_reporting’, E_ALL);
ini_set(‘display_errors’, 1);`
答案 2 :(得分:1)
error_reporting(E_ALL );
ini_set('display_errors', '1');
在代码上方添加代码,看看有什么问题?
foreach($watchList as $value){
saveProduct(getProductDetail($value));
echo ' <li>Product Saved '. $value .'</li>';
}
答案 3 :(得分:0)
这是因为你的数组键在循环的每次迭代中都不匹配$ i的值,可能是因为你的数组键不是连续的整数。毫无疑问,输出(当您调用函数时)只打印'Product Saved',因为$ watchList [$ i]为NULL。
你只是试图将数组中的值传递给该函数,所以按照以下方式进行操作,键是什么并不重要;
echo '<ol>';
foreach($watchlist as $key => $item){
saveProduct(getProductDetail($item));
echo ' <li>Product Saved '. $item .'</li>';
}
echo '</ol>';