질문Q #15508
CI 2.1.3 사용자 $this->CI 변수 질문
런더너2016-10-09 10:40:11
디버거를 통해서 변수의 내용을 확인해보다가 이상한 점이 있어 질문드립니다.
CI 2.1.3 이고요 xdebug 로 디버깅합니다.

특정 클래스(컨트롤러)에서 아래의 명령을 실행함으로 얻어지는 $this->CI 에 대한 문의 입니다.
$this->CI =& get_instance();

위의 명령 한 줄을 통해 얻어진 $this->CI 의 내용을 확인해보니 하위로 무한대의 (체크는 20노드 정도 까지 해봤고요.. 계속 나올듯 합니다.) CI 변수를 포함하고 있었습니다. 

추가되는 CI 의 내용(키&밸류)은 $this->CI 와 일치합니다. 


$this->CI has $CI ($this->CI->CI)
$this->CI->CI has $CI ($this->CI->CI->CI)
$this->CI->CI->CI has $CI ($this->CI->CI->CI->CI)
$this->CI->CI->CI->CI has $CI ($this->CI->CI->CI->CI->CI)

............ 

................

 

왜 이런 결과가 나오는걸까요?

이게 아무런 문제가 되는건 아닌지 아니면 수정을 해야하는지 궁금합니다.

 

답변1
#1 변종원(웅파) 2016-10-10 11:17:47

왜 컨트롤러에서 아래 구문을 실행하죠? 내가 나를 호출하는 재귀호출과 같습니다.

아래 구문은  ci 제어권 바깥에서 ci의 자원을 사용하기 위한 방법입니다. (예를 들면 hook 같은 경우나 라이브러리에서 사용하는 겁니다)

$this->CI =& get_instance();