2010-03-30 3 views
0

안녕 얘들 아! 구문 오류 (예기치 않은 $ end)가 계속 발생하며이 코드 조각으로 격리했습니다. 나는 내 삶이 어떤 폐쇄 문제를 볼 수는 없다. 그것은 아마 명백한 것이지만 그것을 찾으려고 열심히 노력할 것입니다. 추가적인 눈을 주셔서 감사합니다.

function generate_pagination($base_url, $num_items, $per_page, $start_item, $add_prevnext_text = TRUE) 
    { 
     global $lang; 
     if ($num_items == 0) 
     { 
     } 
     else 
     { 
      $total_pages = ceil($num_items/$per_page); 
      if ($total_pages == 1) 
      { 
       return ""; 
      } 
      $on_page = floor($start_item/$per_page) + 1; 
      $page_string = ""; 
      if (8 < $total_pages) 
      { 
       $init_page_max = 2 < $total_pages ? 2 : $total_pages; 
       $i = 1; 
       for (; $i < $init_page_max + 1; ++$i) 
       { 
        $page_string .= $i == $on_page ? "<font face='verdana' size='2'><b>[{$i}]</b></font>" : "<a href=\"".$base_url."&amp;offset=".($i - 1) * $per_page."\">{$i}</a>"; 
        if ($i < $init_page_max) 
        { 
         $page_string .= ", "; 
        } 
       } 
       if (2 < $total_pages) 
       { 
        if (1 < $on_page && $on_page < $total_pages) 
        { 
         $page_string .= 4 < $on_page ? " ... " : ", "; 
         $init_page_min = 3 < $on_page ? $on_page : 4; 
         $init_page_max = $on_page < $total_pages - 3 ? $on_page : $total_pages - 3; 
         $i = $init_page_min - 1; 
         for (; $i < $init_page_max + 2; ++$i) 
         { 
          $page_string .= $i == $on_page ? "<font face='verdana' size='2'><b>[{$i}]</b></font>" : "<a href=\"".$base_url."&amp;offset=".($i - 1) * $per_page."\">{$i}</a>"; 
          if ($i < $init_page_max + 1) 
          { 
           $page_string .= ", "; 
          } 
         } 
         $page_string .= $on_page < $total_pages - 3 ? " ... " : ", "; 
        } 
        else 
        { 
         $page_string .= " ... "; 
        } 
        $i = $total_pages - 1; 
        for (; $i < $total_pages + 1; ++$i) 
        { 
         $page_string .= $i == $on_page ? "<font face='verdana' size='2'><b>[{$i}]</b></font>" : "<a href=\"".$base_url."&amp;offset=".($i - 1) * $per_page."\">{$i}</a>"; 
         if ($i < $total_pages) 
         { 
          $page_string .= ", "; 
         } 
        } 
        continue; 
       } 
      } 
      else 
      { 
       do 
       { 
        $i = 1; 
        for (; $i < $total_pages + 1; ++$i) 

       { 
        $page_string .= $i == $on_page ? "<font face='verdana' size='2'><b>[{$i}]</b></font>" : "<a href=\"".$base_url."&amp;offset=".($i - 1) * $per_page."\">{$i}</a>"; 
        if ($i < $total_pages) 
        { 
         $page_string .= ", "; 
         break; 
        } 
       } 
      } while (0); 
      if (1 < $on_page) 
      { 
       $page_string = " <font size='2'><a href=\"".$base_url."&amp;offset=".($on_page - 2) * $per_page."\">"."&laquo;"."</a></font>&nbsp;&nbsp;".$page_string; 
      } 
      if ($on_page < $total_pages) 
      { 
       $page_string .= "&nbsp;&nbsp;<font size='2'><a href=\"".$base_url."&amp;offset=".$on_page * $per_page."\">"."&raquo;"."</a></font>"; 
      } 
      $page_string = "Pages ({$total_pages}):"." ".$page_string; 
      return $page_string; 
     } 
    } 
+0

내 편집기에 간단한 복사 붙여 넣기 스크립트가있어서 마지막 '}'을 빠뜨린 것으로 나타났습니다. 구문 강조 표시와 기호 (','{ ','[ ') 지원이있는 괜찮은 편집기를 사용하는 것이 좋습니다 .Windows에서는 notepad ++를 무료로 사용할 수 있습니다 .Linux에서는 geany와 같은 훌륭한 편집기가 있습니다. , gedit, kate 등 – ariefbayu

+0

* (sidenote) * 코드가 너무 많이 사용 중입니다. 함수를 설명해보십시오. 각각의 '및'에 대해 해당 코드 블록을 가져 와서 더 작은 별도의 함수로 만듭니다. 더 많은 유지 보수가 가능합니다. – Gordon

답변

3

코드 while (0); 다음에 if (1 < $on_page)이 나에게 잘못되었습니다. 한눈에 else이 닫히지 않은 것처럼 보입니다. 코드에 php -l (lint)을 사용해 보셨습니까?

+0

+1 for 루프의 들여 쓰기를 확인하면 괜찮을 것입니다 .. – pinaki

+0

들여 쓰기가 코드의이 부분에서 깨진 것 같아서, 우리는 추측 할 수 있습니다. –

+0

감사합니다. 너! 나는 지난 몇 시간 동안 열심히 일 해왔다. – dtufano

1

코드 마지막 줄에 }을 넣으십시오. 당신은 당신의 기능의 몸을 닫지 않고 있습니다.

어딘가에 닫는 괄호 이 누락되었을 수도 있습니다.
그러나 우리는 모르겠다. 코드가 어떻게 작동하는지 (즉, 어떤 블록이 실행되어야하는지 모를 때) 처음부터 정확하게 그 번호를으로하고 다시 살펴야한다.

0

기능 본체를 닫으려면 파일 끝에 }이 필요합니다.

0

당신은 그것을 복구하려면 다음 텍스트로 그 문을 교체

라인 65에 시작하는 DO 문에 대한 닫는 } 누락되었습니다.

do 
{ 
    $i = 1; 
    for (; $i < $total_pages + 1; ++$i) 
    { 
     $page_string .= $i == $on_page ? "<font face='verdana' size='2'><b>[{$i}]</b></font>" : "<a href=\"".$base_url."&amp;offset=".($i - 1) * $per_page."\">{$i}</a>"; 
     if ($i < $total_pages) 
     { 
      $page_string .= ", "; 
      break; 
     } 
    } 
} while (0); 
+0

편집 된 닫는 대괄호는 for 문이 아니라 do 문에 해당하는 것이었다. 들여 쓰기를 확인한다. – Seidr

0

들여 쓰기가있는 동안 ... (0) 코드가 꺼져 있습니다. for 루프를 살펴보면, 그 안에있는 모든 것이 들여 쓰기보다 작다는 것을 알 수 있습니다.

이 들여 쓰기를 추가하면 파일 끝에 다른 사람들이 언급 한 내용 (추가 내용)이 문제가되는 것을 알 수 있습니다.