2011-08-13 4 views
2

for 루프를 for 루프로 사용하는 배열이 있습니다. 배열은 함수에 인수로 전달되어야하는 각 요소에 URL을가집니다.for 및 foreach 루프에서의 호출 함수가 PHP에서 실패합니다.

반복하는 동안 함수를 호출하면 루프가 첫 번째 반복 후에 중지되고 전체 배열을 처리하지 않습니다.

배열의 값만 에코하려고 루프에서 함수를 호출하지 않으면 제대로 작동합니다.

foreach 루프를 사용할 때와 같은 문제입니다. 도와주세요.

여기에 내 코드

echo '<ol>'; 
for($i=0; $i < count($watchList); $i++){ 
    saveProduct(getProductDetail($watchList[$i])); 
    echo ' <li>Product Saved '. $watchList[$i] .'</li>'; 
} 
echo '</ol>'; 
+0

'count ($ watchList) '의 값은 무엇입니까? –

+0

'saveProduct' 또는'getProductDetail'은 어떤 식 으로든'$ watchList'를 수정합니까? –

+0

288 items 함수 호출에 주석을 달고 함수 다음에 출력 된 모든 반복을 출력하는 경우에만 출력합니다. – Wikki

답변

1

루프 아무 문제입니다. 당신이 부르는 기능에 문제가있어 야합니다.

아직 오류보고 기능을 사용하지 않으려는 경우 사용해보십시오. 코드에 이상

ini_set(‘error_reporting’, E_ALL); 
ini_set(‘display_errors’, 1);` 
1
error_reporting(E_ALL); 
ini_set('display_errors', '1'); 

추가 코드는 무엇이 잘못되었는지 볼 수?

foreach($watchList as $value){ 
    saveProduct(getProductDetail($value)); 
    echo ' <li>Product Saved '. $value .'</li>'; 

} 
+0

놀랍게도 첫 번째 반복 결과로 데이터가 db에 저장되지만 루프가 실패합니다 – Wikki

2

배열이 순차적이지 않을 수 있습니다. 당신은 그것이 0-n에서 나왔다고 가정하고 있지만, 그렇지 않을 수도 있습니다. 이 옵션을 사용하고 그것을 작동합니다 : 배열의 키 배열 키를 순차적 정수가 아닌 아마도 때문에, 루프의 각 반복에서 $ i 값과 일치하지 않기 때문에

echo '<ol>'; 
foreach($watchList as $key=>$watchItem){ 
    saveProduct(getProductDetail($watchItem)); 
    echo ' <li>Product Saved '. $watchItem .'</li>'; 
} 
echo '</ol>'; 
0

그것은이다. $ watchList [$ i]가 NULL 일 때 출력 (함수 호출을 할 때)이 'Product Saved'를 출력한다는 것은 의심의 여지가 없습니다.

배열의 값을 해당 함수로 전달하려고하기 때문에 다음과 같이하십시오. 키가 무엇인지는 중요하지 않습니다.

echo '<ol>'; 
foreach($watchlist as $key => $item){ 
    saveProduct(getProductDetail($item)); 
    echo ' <li>Product Saved '. $item .'</li>'; 
} 
echo '</ol>';