php
PHP - Fatal error: Uncaught TypeError: count(): Argument #1 문제 해결 방법
PHP 7.x 버전에서 완벽하게 작동하던 코드가 PHP 8.x 버전으로 업데이트하고 나서 Fatal error: Uncaught TypeError: count(): Argument #1... 와 같은 오류가 발생하는 경우 count()함수에 배열이 아닌 값이 주어졌기 때문입니다.
count()함수는 배열의 모든 요소 수를 계산합니다. PHP 8.0 이전에는 매개변수가 배열이 아니고 객체도 아닌 경우에도 "0"의 값을 반환했습니다.
하지만 PHP 8.0 부터 배열이 아니면 작동하지 않습니다. 이런 오류를 피하기 위해 count()에 주어진 매개변수를 배열로 만들어야 합니다.
$_POST['user_name'] 의 변수가 빈 변수이면 배열이 아니게 되므로 (array)$_POST['user_name']와 같이 임의로 배열을 만들어 주어야 합니다.
$cnt = count((array)$_POST['sum']);
PHP8의 더 쉬운 코드를 위해 사용자 정의 함수를 만들 수도 있습니다.
function count_($array) {
return is_array($array) ? count($array) : 0;
}
0 댓글