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

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

QA

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

본문

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

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

 

Warning: count(): Parameter must be an array or an object that implements Countable in /home/vuser02/2/5/*** 개인정보보호를 위한 휴대폰번호 노출방지 ***/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")? "<i class='fa fa-clock-o txt_red' aria-hidden='true'></i>":"";
    $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)? "<li class='gray'>".(int)$day."일 ".$clock_ico."</li>":"<li class='li_day {$y}' ".$except_url.">".(int)$day."일 ".$clock_ico."</li>";

        if($temp_h=="1") {
            $rst .= "<li class='li_closed'><i class='fa fa-heart' aria-hidden='true'></i> 임시휴무</li>";
        }

        if($office_yoil == $yoil) {
            $rst .= "<li class='li_closed'><i class='fa fa-heart' aria-hidden='true'></i> 정기휴무</li>";
        }

    } else {

        $link = G5_BBS_URL."/write.php?bo_table={$bo_table}&select={$var}&office_no=".$off['id_no'];
        $rst .=  "<li class='li_day txt_green {$y}' ".$holiday_title." ".$except_url.">".(int)$day."일 ".$clock_ico."</li>";

        // 임시휴무 - 값이 1이면 임시휴무( g5_write_booking.ex_kind 의 값)
        if($temp_h=="1") {
            $rst .=  "<li class='li_closed'><i class='fa fa-heart' aria-hidden='true'></i> 임시휴무</li>";
        } else {
            if($booking_check==true) {
                $rst .=  "<li class='li_btn'><a href='{$link}'> 예약가능</a></li>";
            } else {
                $rst .=  "<li class='li_closed2 txt_gray'> 예약마감</li>";
            }
        }
    }


    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 .= "<li class='member_list'><a href='".$link2."'><i class='fa fa-volume-up' aria-hidden='true'></i> ".$ti." ".$na."</a></li>";
    }

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

    return $arr;
}

 

이 질문에 댓글 쓰기 :

답변 1

count($booking[$var]);

php 7.x부터는 

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

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

답변을 작성하시기 전에 로그인 해주세요.
전체 6
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT