반응형
PHP 7.2로 업그레이드 된 이후부터 input을 배열로 처리하는 부분에 아래와 같은 에러를 발견했다.
count(): Parameter must be an array or an object that implements Countable
기존에는 아래와 같이 해도 0을 출력 했지만 PHP 7.2에서는 셀수 없는 경우 0이 아닌 에러가 발생하게 되었다.
<?php echo count(null)?>
동적으로 Input폼을 배열로 생성하는 기능이 있는 입력폼이라 Input폼이 있을 경우도 있고 없을 경우도 있기 때문에 어떻게든 해결 해야 했고, 그래서 해결한 생각해낸 해결책은 isset, empty, is_null을 이용해서 count에 넘겨줄 인자를 먼저 검사하는 것이다.
Codeigniter에서 isset과 empty를 이용해보니 $_POST['name']형태로만 써야 검사가 되는데 아무래도 Codeigniter 스러운 코드를 그대로 사용하고자 is_null을 사용했다.
[기존코드]
$cnt=count($this->input->post('item'));
[수정코드]
$cnt=is_null($this->input->post('item')) ? 0 : count($this->input->post('item'));
728x90
'Solve to troubleshoot' 카테고리의 다른 글
SyntaxError: Unexpected identifier in index.ejs while compiling ejs (0) | 2020.05.20 |
---|---|
PHP Undefined index: (0) | 2020.05.19 |
phpmyadmin 초기 설치시 에러 (0) | 2020.03.31 |
(Redis) Failed opening .rdb for saving: Read-only file system (0) | 2020.03.25 |
if (e.name === 'BrowserslistError') throw e (0) | 2020.02.25 |