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

count(): Parameter 질문 다시하겠습니다 죄송합니다; 채택완료

cirrus 5년 전 조회 2,236

에러내용을 안써올렸다하시고 

답변 달아주신부분이 이해도 살짝 안가서 지금 터진 에러만 다시 올려보겠습니다; 

 

Warning: count(): Parameter must be an array or an object that implements Countable in /home/vuser02/2/5/0164452000/www.brestbike.com/skin/board/booking/skin.function.php on line 431

 

 

노랑부분이 431에요.

정말 죄송합니다. 진짜 잘 몰라서 ㅠㅠ  

 

 

 

 

list($y, $bg) = yoil_class($yoil); // 요일별 글자색상과 배경색에 관련된 class 명     $office_yoil = closed_Day(booking_holiday_array($off['mb_id']), $var); // 정기휴무일계산     $holiday = holiday_array($fr_day, $to_day, $off['id_no']); // 임시휴무일     $booking = booking_array($fr_day, $to_day, $off['id_no']); // 예약현황 배열     $booking_check = close_check($bo_table, $var, count($booking[$var]));     $temp_h = $holiday[$var]; // 임시휴무 (값이 1인 경우에만 임시휴무)

    //echo "예약인원:".$booking_check;

    $clock_ico =($temp_h=="2")? "":"";     $except_url = ($is_admin || $member['mb_id']==$off['mb_id'])? "onclick=\"except_pop('".$var."', '".$min."', '".$max."', '".$off['id_no']."', '".$bo_table."');\" style=\"cursor:pointer;\"":"";

    if($var < $min || $var > $max || $office_yoil == $yoil) {

        // 예약 가능일 이전과 이후 글자색상         $rst =  ($var < $min)? "

  • ".(int)$day."일 ".$clock_ico."
  • ":"
  • ".(int)$day."일 ".$clock_ico."
  • ";

            if($temp_h=="1") {             $rst .= "

  • 임시휴무
  • ";         }

            if($office_yoil == $yoil) {             $rst .= "

  • 정기휴무
  • ";         }

        } else {

            $link = G5_BBS_URL."/write.php?bo_table={$bo_table}&select={$var}&office_no=".$off['id_no'];         $rst .=  "

  • ".(int)$day."일 ".$clock_ico."
  • ";

            // 임시휴무 - 값이 1이면 임시휴무( g5_write_booking.ex_kind 의 값)         if($temp_h=="1") {             $rst .=  "

  • 임시휴무
  • ";         } else {             if($booking_check==true) {                 $rst .=  "
  • 예약가능
  • ";             } else {                 $rst .=  "
  • 예약마감
  • ";             }         }     }

        if($temp_h=="1") { unset($booking); } // 임시휴무이면 예약자리스트를 초기화하여 화면에 노출을 하지 않는다.          $boo = '';     for($k = 0; $k < $cnt; $k++) {

            list($na,$wr,$ti,) = explode("|",$booking[$var][$k]); //(예약자이름|예약글고유번호|예약시간|예약상태)

            if($member['mb_level'] >= '5') {             $popup_url = $board_skin_url."/booking_popup.php?bo_table=".$bo_table."&office_no=".$off['id_no']."&wr_id=".$wr;             $link2 = "javascript:booking_view(\"{$popup_url}\")";         } else {             $link2 = G5_BBS_URL."/board.php?bo_table=".$bo_table."&office_no=".$off['id_no']."&wr_id=".$wr."&".$qstr;         }

            $boo .= "

  • ".$ti." ".$na."
  • ";     }

        $arr[] = $rst; // 임시휴무 및 예약시간제외설정값     $arr[] = $boo; // 예약자 리스트

        return $arr; }  

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

    답변 1개

    채택된 답변
    +20 포인트
    5년 전

    count($booking[$var]);

    php 7.x부터는 

    해당 부분이 count함수로 사용되려면 배열이나 오브젝트같은 count함수를 사용할 수 있는 변수여야만 에러가 나오지 않습니다. 예전에는 해당 변수에 아무것도 없거나 배열이 아니면 0으로 처리되었지만 이젠 그렇지 않기 때문에

    해당 $booking를 최초로 사용하는 지점 위에 $booking = array(); 같이 배열을 선언해줘야 합니다. php는 자료형에 민감한 언어는 아니였지만 상위버전으로 갈수록 문법에 엄격해지고 있으니 생략하던 자료형 선언은 습관화 들이시는게 좋습니다.

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

    답변에 대한 댓글 1개

    c
    cirrus
    5년 전
    스킨 받아 쓴건데 에러가 터져서요.
    저는 코드 짤줄 모르고 받은게 에러가난거라;;

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

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

    로그인