개발 Q&A

제목 게시판 관련 질문드립니다.
글쓴이 ci_chobo 작성시각 2012/08/09 10:51:26
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 16190   RSS
ci세상님께서 올려주셨던 자료실에있는 게시판 관련 자료 질문입니다

public function seg_value($key,$segment=NULL)
  {
   if($segment == NULL) {
   $segment = $this->uri->segment_array();
   }
 
   $this->seg_exp = array_values($segment);
   $arr_key = array_keys($this->seg_exp, $key);
 
   print_r($arr_key);
   
   if($arr_key)
   {
    $arr_val = $arr_key[0] + 1;
   } 
   else 
   {
    $arr_val = 200;
   }
 
   if(count($this->seg_exp) > $arr_val)
   {
    return $this->seg_exp[$arr_val];
   } 
  }
  
  public function seg_index($key,$segment=NULL)
  {
   if($segment == NULL) {
    $segment = $this->uri->segment_array();
   }
 
   $this->seg_exp = array_values($segment);
   $arr_key = array_keys($this->seg_exp, $key);
 
   $tot =count($arr_key);
 
   if($tot > 0) {
    $arr_val = $arr_key[0] + 2;
 
    return $arr_val;
   } else {
    return "";
   }
  }
다른부분은 제가 생각하고 참고해서 추가하거나 변형한 부분이 있긴 한데
그거랑은 별개로 이 부분의 코드가 이해가 잘 가질 않습니다.

seg_value에서 $arr_key를 print_r로 찍어보면
Array() Array() Array()  Array() Array() Array()이렇게 찍힙니다.
검색을 활성화해서 찍어보면 (검색값이 2일 때)
Array ( [0] => 2 ) Array ( [0] => 4 ) Array ( [0] => 2 ) Array ( [0] => 4 ) Array ( [0] => 2 ) Array ( [0] => 4 ) Array ( ) Array ( [0] => 2 ) Array ( [0] => 4 )  이렇게 나옵니다.

뒤에 4라고 나오는게 글의 갯수인거 같아서 확인해보니 글의 갯수는 3이구요.
(print_r은 임의로 추가했다가 지웠습니다.)


if($arr_key)
   {
    $arr_val = $arr_key[0] + 1;
   } 
   else 
   {
    $arr_val = 200;
   }
 
   if(count($this->seg_exp) > $arr_val)
   {
    return $this->seg_exp[$arr_val];
   } 
그리고 부분이 $arr_val = 200을 해준 부분이나.. 그런부분이 이해가 잘 가질 않습니다..
전체적으로 다른 코드는 찾아보고 계속 보다보니 이해가됐는데 이부분은 봐도 이해가 잘 안가네요...

자세하게나 간략하게라도 설명좀 해주셨으면 좋겠습니다.

(프로그램적 오류는 없습니다)
 다음글 css layout design을 기본 제공하는 사이트 (4)
 이전글 뜬금없는 질문인데요..sync async (8)

댓글

변종원(웅파) / 2012/08/09 11:19:46 / 추천 0

주소를 배열로 변환하고 그 배열에서 $key에 해당하는 값을 반환하는 함수입니다.

ci_chobo / 2012/08/09 11:37:44 / 추천 0
seg_value 부분에

{
$arr_val = $arr_key[0] + 1;
}
else
{
$arr_val = 200;
}
이 부분 추가설명좀 부탁드려도될까요??


변종원(웅파) / 2012/08/09 17:41:58 / 추천 0
해당하는 키가 있으면 키 다음의 배열순서를 반환하고
없으면 200을 줘서 없는 값을 나타내게 한겁니다.
통상적으로 개발할때 200번째 세그먼트가 있을 수 없을테니까요.

해당 라인에서 값들 찍어보세요. ^^