제목 | 함수 실행 관련해서 문의 드립니다. | ||
---|---|---|---|
글쓴이 | 온더탑 | 작성시각 | 2013/08/09 18:43:36 |
|
|||
DB안에 특정 id를 검색해서 그 결과를 다음 페이지에 반영하고 싶은데요. //DB 안의 내용을 검색해서 리턴해 주는 함수 public function make_res_number($res_number)
{
$this->load->model('reservation_model');
$result = $this->reservation_model->search_res_number($res_number);
if(count($result))
{
$res_number++;
$this->make_res_number($res_number);
}
else
{
//여기서 검색결과 DB상에 없는 값을 만들어서 리턴합니다. echo $res_number; //여기 $res_number 값은 찍힙니다. return $res_number;
}
}
//Ci url로 호출한 함수 public function regist_reservation()
{
$v = $this->make_res_number(20130809001); //여기 값이 Null로 나옵니다. echo $v; echo "함수 실해 후"; } make_res_number 함수에서 값이 찍힌 다음 "함수 실행 후"도 찍힌 걸 확인했는데 $v 값에는 리턴값이 안들어가 있습니다.. 이럴 경우 어떻게 해야할까요... |
|||
다음글 | pagination에서 post 값 넘겨받기 (4) | ||
이전글 | Linux에서 Windows로 옮긴뒤 시스템 라이브러리... (4) | ||
변종원(웅파)
/
2013/08/10 10:12:37 /
추천
0
|
Artz
/
2013/08/11 02:16:49 /
추천
0
M에서 재귀함수 A를 호출했다고 칠 경우에
호출받은 A가 A', A'', A'''로 재귀호출되었다면, 리턴값은 역순인 A''' -> A'' -> A'으로 전달되고, 최종적으로 A가 받아서 M으로 전달하게 됩니다. 그런데 위 코드에선 else에서만 return이 존재하고 있기 때문에 재귀동작이 제대로 이루어지지 않을 수 밖에 없지요. if문 내부의 $this->make_res_number($res_number);를 return $this->make_res_number($res_number);로 고치면 간단히 해결될 것으로 보입니다만, 재귀함수에 대해 다시 한번 생각해보면서 직접 해보시는게 좋을 것 같네요. |
저런 경우 굳이 재귀함수로 만들 필요는 없을 것 같네요.
search하는 모델함수에서 해당 넘버를 검색해서 없을 경우엔 그 넘버를 반환하고
있다면 select_max한 값에 1을 더해서 반환하게 만들면 간단합니다.