• 전화하지 마셈
  • hyungseob@ssim.pe.kr
Codeigniter 3.x에서 4.x로 갈아 엎느라 기존 게시판 주소로 접근시 새 주소로 리다이렉션 된다.

Developerment [PHP]

PHP 7.2에서 count() 사용에 에러 발생시 조치

  • 빛그림
  • 2,802

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'));

 

PHP가 버젼업 될때마다 점점 엄격해지는 것 같다.


새댓글 등록