调用for函数和foreach循环在PHP中失败

时间:2011-08-13 20:41:32

标签: php function foreach

我有一个数组,我正在迭代使用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>';

4 个答案:

答案 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>';