전에 겪었던 문제, 저는 매우 고민했어요. 어떻게 해결해야 할지 고민했는데, 이제 마침내 해결책을 찾았고, 여러분과 공유할게요. 문제는 다음과 같습니다: 엄격한 기준: 418행의 upload\includes\cls_template.php에서 참조로 변수만 전달해야 합니다 418행: $tag_sel = array_shift(explode(' ', $tag));
해결책 1: 버전 5.3 이상에서의 문제는 구성 문제와도 관련이 있을 것입니다: 418행이 이 문장을 두 문장으로 나누는 한 문제는 없습니다 $tag_sel = array_shift(explode(' ', $tag)); 변경:
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr); array_shift의 매개변수는 참조를 통해 전달되기 때문에, 기본값은 5.3 이상인 특정 변수만 전달할 수 있으며, 함수를 통해 값을 반환할 수 없습니다 마찬가지로, 함수 중첩 오류를 만났을 때는 별도로 작성할 수 있으며, 오류가 자연스럽게 해결됩니다
만큼: 함수 get_dyna_libs($theme, $tmp)
{ $extsub = 폭발('.', $tmp); $ext = 끝($extsub); $tmp = basename($tmp,".$ext"); $sql = '영역, 라이브러리, sort_order, ID, 번호, 유형' 선택 ' '에서. $GLOBALS['ecs']->table('template') . "여기서 theme = '$theme' 그리고 파일명 = '" . $tmp. "' AND type > 0 AND remarks=''". '도서관, 도서관, sort_order 지역별 순서 안내'; $res = $GLOBALS['db']->getAll($sql); $dyna_libs = array(); foreach ($res as $row)
{ $dyna_libs[$row['region']][$row['library']][] = array( 'id' => $row['id'], '숫자' => $row['숫자'], '유형' => $row['유형'] );
} return $dyna_libs;
}
set $ext = end(explode('.', $tmp)); 변화 $extsub = 폭발('.', $tmp); $ext = 끝($extsub);
해결책 2 (마스킹 오류):
또는 이렇게 구성하면 다음과 같습니다: error_reporting = E_ALL | E_STRICT php.ini에서 제공되는 설정은 다음과 같습니다: error_reporting = E_ALL | E_STRICT
즉, 코딩 표준 경고가 표시됩니다. Joomla는 실제로 오류 출력 취소를 권장하는데, 디버깅에 필요할 경우 이 설정을 변경해야 합니다 error_reporting = E_ALL & ~E_NOTICE
문제는 해결되었습니다. |