그런데 count() 함수는, "요소 개수가 0인 배열"과 "존재하지 않는 배열" 모두 0을 반환하기에 혼란스러운 점이 있습니다. 이때는 isset() 함수를 사용하여 그 배열이 실재하는지 우선 체크하는 것이 좋습니다.
아래 예제의 safeCount() 라는 함수를 사용하면, 배열이 존재하지 않을 때에는 -1을 반환하게 할 수 있습니다.
배열 사이즈 / 요소 갯수 얻기 예제
파일명: example.php
<html>
<head>
<title>PHP Example</title>
</head>
<body>
<?php
$a = array(1, 2, "AAA", "BBB");
echo count($a) . "<br />\n";
// 출력 결과: 4
$b = array("자장면", "짬뽕", "탕수육");
echo count($b) . "<br />\n";
// 출력 결과: 3
// 요소가 하나도 없으면 당연히 0
$b = array();
echo count($b) . "<br />\n";
// 출력 결과: 0
/////////////////////////////////////////////
// 존재하지 않는 배열도 0으로 나오므로 주의
echo count($tt) . "<br />\n";
// 출력 결과: 0
// 존재하지 않는 배열은 -1을 반환하기
echo safeCount($tt) . "<br />\n";
// 출력 결과: -1
// 존재하는 배열만 요소 개수 출력하기
echo safeCount($a) . "<br />\n";
// 출력 결과: 4
function safeCount($array) {
if (isset($array)) return count($array);
return -1;
}
?>
</body>
</html>
<head>
<title>PHP Example</title>
</head>
<body>
<?php
$a = array(1, 2, "AAA", "BBB");
echo count($a) . "<br />\n";
// 출력 결과: 4
$b = array("자장면", "짬뽕", "탕수육");
echo count($b) . "<br />\n";
// 출력 결과: 3
// 요소가 하나도 없으면 당연히 0
$b = array();
echo count($b) . "<br />\n";
// 출력 결과: 0
/////////////////////////////////////////////
// 존재하지 않는 배열도 0으로 나오므로 주의
echo count($tt) . "<br />\n";
// 출력 결과: 0
// 존재하지 않는 배열은 -1을 반환하기
echo safeCount($tt) . "<br />\n";
// 출력 결과: -1
// 존재하는 배열만 요소 개수 출력하기
echo safeCount($a) . "<br />\n";
// 출력 결과: 4
function safeCount($array) {
if (isset($array)) return count($array);
return -1;
}
?>
</body>
</html>
댓글 없음:
댓글 쓰기