테스트 사이트 - 개발 중인 베타 버전입니다

count(): Parameter must be an array or an object that implements Countable

핑핑이0202 2년 전 조회 1,368

 

php왕초보 입니다.. 도와주십쇼

price3_str을 추가했는데 위 화면 처럼 오류가 뜹니다..

 

php7입니다.

72번 for($i=0; $i < count($ttit); $i++)

 

 

댓글을 작성하려면 로그인이 필요합니다.

답변 5개

2년 전

</p>

<p>var_dump($ttit);</p>

<p>

로 확인해보세요

에러메세지에 나오는대로 순회 가능한 array 나 object 여야 합니다.

e.g. Array implements Countable

</p>

<p><?php

$ttit = [['a' => 1, 'b' => 2, 'c' => 3], ['a' => 4, 'b' => 5, 'c' => 6]];

//$ttit = [(object)['a' => 1, 'b' => 2, 'c' => 3], (object)['a' => 4, 'b' => 5, 'c' => 6]];</p>

<p>for($i=0; $i < count($ttit); $i++) {

    echo print_r($ttit[$i], true) . PHP_EOL;

}</p>

<p>/*</p>

<p>Array

(

    [a] => 1

    [b] => 2

    [c] => 3

)</p>

<p>Array

(

    [a] => 4

    [b] => 5

    [c] => 6

)</p>

<p>*/

?></p>

<p>

 

sqlsrv_error 같은 경우도 공식적으로 그런 함수는 없고

https://www.php.net/manual/en/function.sqlsrv-errors.php

라는게 있습니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

for($i=0; $i < count((array)$ttit); $i++) 

어레이로 형변환해보세요 위에 예시코드 입니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

$ttit 변수 값을 만드는 부분 소스를 올려 보세요.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

2년 전

1. $ttit 값이 배열이 아니거나 빈 값일 수 있겠네요

상단 쿼리문 혹은 배열을 다시 보셔야 할 듯 하고

2. price3_str의 경우는 sw_goods 테이블내에 price3_str 컬럼이 없을 듯 하네요

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

2년 전

$ttit -> 초기에 0 이라서 그런거 아닐까요?

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인