2016-07-12 6 views
1

Head First PHP를 사용하고 있으며 PHP에서이 스 니펫을 발견했습니다.이 코드는 어떻게 작동합니까?

first_name, last_name 및 email이 들어있는 테이블의 각 레코드 행을 표시해야합니다.

while($row = mysqli_fetch_array($result)) 
{ 
    echo $row['first_name'] . ' ' . $row['last_name'] . 
    ' : ' . $row['email'] . '<br />'; 
} 

$row 배열 mysqli_fetch_array() 의해 얻어진 다음 행을 포함한다. 그러나 이것이 while 루프에 의해 점검되는 조건은 무엇입니까? while 루프는 내부 ​​코드를 실행하기 전에 참/거짓으로 평가되는 것은 정확히 무엇입니까? 왜 행이 고갈되면 루프가 멈 춥니 까? EOF를 확인하는 조건조차 없다. 그러면 정확히 작동합니까?

+0

http://php.net/manual/en/mysqli-result.fetch-array.php 및 http://php.net/manual/en/control-structures.while.php. 나가서 배우십시오. – aynber

+0

@aynber ** ** 해당 자원 없음은 Null이 _False_로 해석되는 동안 데이터의 가용성이 _True_로 해석되는 방식을 설명합니다. 그것이 내가 알고 싶은 것입니다. –

답변

1

PHP Documenation을 참조하면 mysqli_fetch_array()는 페치 된 행에 해당하는 문자열 배열을 반환하거나 결과 집합에 더 이상 행이 없으면 NULL을 반환합니다. 따라서 결과가 더 이상 없으면 false로 평가하고 루프를 종료하는 null을 반환합니다.

+0

그렇다면 NULL 값을 포함하는 것이 항상 "false"로 평가되는 반면, 텍스트/내용은 항상 "true"로 평가됩니다. 아니면 특별한 경우입니까? –

+0

my_sqli_fetch_array()는 문자열 배열을 반환합니다. 비어 있지 않은 배열은 true로 평가됩니다. NULL은 항상 false로 평가됩니다. 다른 유형에 대해 true/false로 평가되는 값을 확인하려면 http://php.net/manual/en/language.types.boolean.php를 참조하십시오. – amhokies

+0

감사합니다. 그 링크가 필요합니다. –

관련 문제