php 코드 버전문제 질문 드립니다... 도와주세요 ㅠㅠ

php 코드 버전문제 질문 드립니다... 도와주세요 ㅠㅠ

QA

php 코드 버전문제 질문 드립니다... 도와주세요 ㅠㅠ

본문

<?php

$list = ladder_ranking();

 

$count = count($list);

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

$rank = $i + 1;

 

$fa_photo = (isset($boset['ficon']) && $boset['ficon']) ? apms_fa($boset['ficon']) : '<i class="fa fa-user"></i>';

$mb_photo = apms_photo_url($list[$i]['mb_id']);

$wr_photo = ($mb_photo) ? "<img class='img-circle cursor' src='{$membericon}'>" : $fa_photo;


 

echo "

<li>

<a class='ranker-list-link'>

$wr_photo

<strong class='rank rank{$rank}'>{$rank}</strong> {$list[$i]['mb_nick']} <span> {$list[$i]['win']}승 {$list[$i]['lose']}패 최근 {$list[$i]['bestwinning']}연승 / 점수 {$list[$i]['rankval']}점</span>

</a>

</li>

";

}

?>


지금 이부분이 애러난다고 나오는데 어딜 수정해야될까요... 


Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/17/d817995208/htdocs/skin/board/basic-ladder/view.ladder.php on line 94 

오류 내용입니다. 

 

사다리게임을 받았는데 php버전 호환 문제인지 이런식으로 나오는데 어떤식으로 수정해야될지 감이 안오네요

 

혹시 이걸 수정 할 수 있는 그런 문법 볼 수 있는 사이트 있으면 알려주시면 감사합니다 ㅠ

 

 

현제 서버는 php 7.3버전 입니다.

이 질문에 댓글 쓰기 :

답변 3

폴라베어님 답이 맞아요. 배열값이 없어서 그런거거든요. 근데

 

아마 저 에러 처리하는 코드가 스택오버플로우에 가보시면 국룰로


$count = is_null($list) ? 0 : count($list);

이럴 겁니다.

 

근데 대부분 for문 같은데서 

for($i = 0; $i < count($array); $i++) { .... 이런식으로 쓰시잖아요. 

 

그래서 전 그냥 함수를 하나 만들어서 교체해줬어요.

아래와 같은 함수를 하나 만들어서 common.lib.php 끝에 붙여넣고,

기존 count 함수가 사용된 곳을 찾아서 count() -> _count() 로 교체해줌.

 


function _count($array) {
   return is_null($array) ? 0 : count($array);
}

 

좀 무식하긴 한데 ㅎㅎ.

 

아참 쓰는 김에 in_array() 함수도 배열이 null 인 경우 오류가 날수도 있을거에요.

이럴땐 마찬가지로 _in_array() 함수를 만들어서 


function _in_array($value, $array) {
    if(!$value) return false;
    if(!$array) return false;
    return in_array($value, $array);
}

 

슥삭슥삭...허접해서 죄송

오류내용으로는 $list 변수가 카운트할수 있는 배열이거나 오브젝트여야하는데 전달된 형식이 아니라서 발생하는 걸로 보여집니다.

ladder_ranking() 함수에서 리턴값이 정상적으로 넘어오는지 확인하시고 해당 함수내에서 호환성 문제가 없는지 점검해보셔야할것 같습니다.

 


$list = ladder_ranking();
 
$count = count($list);
답변을 작성하시기 전에 로그인 해주세요.
전체 47
QA 내용 검색

회원로그인

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