다음 while 루프를 PHP의 -loop으로 변환하려면 어떻게해야합니까?PHP의 while 루프를 -loop으로 변환하려면
while($row2 = pg_fetch_row($result_tags)
는 -loops 나에게 오류의 원인이 있지만. while -loop은 다음과 같이 표시됩니다.
for ($i = 0 ; $i < count(pg_fetch_row($result_tags)) ; $i++)
다음 while 루프를 PHP의 -loop으로 변환하려면 어떻게해야합니까?PHP의 while 루프를 -loop으로 변환하려면
while($row2 = pg_fetch_row($result_tags)
는 -loops 나에게 오류의 원인이 있지만. while -loop은 다음과 같이 표시됩니다.
for ($i = 0 ; $i < count(pg_fetch_row($result_tags)) ; $i++)
while
을 for
으로 변환 할 수 없습니다.
for
루프가 증분 루프에 사용됩니다. while
루프는 조건이 false
이 될 때까지 코드를 실행하는 데 사용됩니다. for
루프는 대부분 while
루프 (for
루프는 문법적으로 향상된 while
루프입니다)로 쉽게 변환 할 수 있지만 반대는 항상 가능하지는 않습니다. pg_fetch_row()
가 falsy value 반환 될 때까지
while($row = pg_fetch_row($result)) { }
이 루프가 실행 :
는 다음 루프를 고려하십시오.
참고 : 같은 루프에 대한 올바른 구문은 다음과 같습니다
:
while(($row = pg_fetch_row($result)) !== FALSE) { }
불행하게도
, 당신은 for
루프를 사용하여 올 수있는 가장 가까운는 다음과
for(; $row = pg_fetch_row($result) ;) {}
과 완전히 똑같을 것이다.어쨌든 루프.
참고 :는 다시, 이러한 루프에 대한 올바른 구문은 다음과 같습니다
for(; ($row = pg_fetch_row($result)) !== FALSE ;) { }
나는 당신이 당신의 코드에 돌아가서 문제의 정확한 원인을 발견해야한다고 생각 대신 루프의 사용을 비난하는 대신 while
.
pg_fetch_row()
은 열 배열을 반환하므로 count()
을 사용할 수 없습니다.
이 같은 pg_num_rows
을 사용하고있을 것 for
루프를 사용하여 올 수있는 가장 가까운 :
for($i = 0; $i < pg_num_rows($result); $i++) {
$row = pg_fetch_row($result);
}
그러나 개인적으로 나는 불필요하게 자세한 정보와 더 많은 문제에 열려 찾을 수 있습니다.
+1. 이 대답은 "! == FALSE"테스트에 대한 설명을 사용할 수 있습니다. 즉, 빈 배열은 'pg_fetch_row (...)'가 행을 반환 했음에도 불구하고 FALSE로 저글링 된 유형이며 루프가 종료됩니다. 물론 행에 열이 없으면 루프를 건너 뛰고 싶을 수 있습니다. 또한 "! == FALSE"테스트는 구문이 아닌 의미의 문제입니다. – outis
예 ...하지만 "적절한 의미"를 말할 수는 없습니다 ... 그래서 구문을 말한 것입니다. –
왜이 작업을 수행 하시겠습니까? 더 좋은 방법은 $i = 0
을 선언/인스턴스화 한 다음 while
루프 끝 부분에서이를 증가시키는 것입니다.
init;
while (test) {
body;
incr;
}
는 for 루프는 while 루프의 특별한 종류이다 루프 다른 방향으로 가고
, A :에
for (init; test; incr) {body;}
는 동일하다. 개인적으로 while 루프를 for 루프로 변환하면 오류가 줄어들 것입니다.
이것을 보여 주셔서 감사합니다. –
while 문에서 오류가 누락되지 않았습니까? –
while 루프에서 어떤 종류의 문제가 있습니까? – outis
답변 해 주셔서 감사합니다. –