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는 자료형에 민감한 언어는 아니였지만 상위버전으로 갈수록 문법에 엄격해지고 있으니 생략하던 자료형 선언은 습관화 들이시는게 좋습니다.

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

회원로그인

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