| 제목 | 서로다른 뷰의 변수 scope | ||
|---|---|---|---|
| 글쓴이 | 옥토넛 | 작성시각 | 2014/11/20 15:33:35 | 
|  | |||
| // file : controllers/welcome.php class Welcome extends CI_Controller { function index(){ $this->load->view('welcome',array("title"=>"kim")); $this->load->view('welcome2'); } } // file : views/welcome.php echo $title; // file : views/welcome2.php  echo $title; 소스코드가 위와 같을때요..welcome2에는 데이타를 첨부하지 않았지만 welcome의 변수와 scope가 같아서 $title에 "kim"이 출력이 되네요. 변수가 오염될 확률이 상당히 높을거 같은데..저만 그렇게 생각하는지요? | |||
| 다음글 | 위젯 질문드립니다. (2) | ||
| 이전글 | 세션사용시 .. 세션 데이터베이스 옵션 활성... 관련... (8) | ||
| 
                                한대승(불의회상)
                                /
                                2014/11/20 15:38:28 /
                                추천
                                0
                             | 
| 
                                옥토넛
                                /
                                2014/11/20 15:47:04 /
                                추천
                                0
                             
                                아 hmvc로 board모듈의 view를 가져올때 게시물제목이 $title이 될수도 있는데요. view('head')에서도 <title>태그에도 $title이 될수도 있겟네요. 많은수의 모듈을 쓰게되면 대략 난감하겠네요 ㅠ | 
| 
                                kaido
                                /
                                2014/11/20 15:53:16 /
                                추천
                                0
                             
                                어라리? 저만 이해 못하는 건가요? 어차피 뷰 로드는 뷰 파일을 각각 불러온다고 생각 되서... 그리고 네이밍 룰은 원칙적으로 대표언어는 기피하는게 기본 원칙이긴 하죠. $title $cont $main $delete $list 기타등등... 물론 오염을 막기 위해서 네임스페이스 라는 개념이 등장 하긴 했습니다만... ㅇㅏ! 생각해보니 PHP에도 네임스페이스가 있던가...? 찾아봐야겠네요. | 
| 
                                옥토넛
                                /
                                2014/11/20 15:56:28 /
                                추천
                                0
                             
                                HMVC를 쓰고있는데요. MX/Loader.php 에서 321번라인다음줄에 include($_ci_path); $this->_ci_cached_vars = array(); // 추가된 부분 뷰파일 include후에 _ci_cached_vars를 빈배열로 초기화 해주면 문제 될게 있을까요? 저렇게 하니..welcome2에서는 $title을 모르는군요... | 
| 
                                옥토넛
                                /
                                2014/11/20 15:57:57 /
                                추천
                                0
                             
                                네임스페이스 써볼려고했는데요. 함수고 클래스고 역슬래시 붙이는것도 귀찮고... HMVC용 패치가 있었는데 해보니 좀 잘안되더라구요 ㅠㅠ | 
| 
                                변종원(웅파)
                                /
                                2014/11/20 18:10:24 /
                                추천
                                0
                             
                                같은 제어권 안에서 같은 변수가 사용되는게 이상한건가요? ^^
                             | 
| 
                                한대승(불의회상)
                                /
                                2014/11/20 18:22:53 /
                                추천
                                0
                             
                                변종원// 모듈 설계 하다 보면 같은 제어권으로 설정 되면 안될때가 필요 합니다. ^^
                             | 
| 
                                변종원(웅파)
                                /
                                2014/11/20 18:59:45 /
                                추천
                                0
                             
                                unset ^^ php가 c에 비해 변수 선언 없이 사용하고 메모리 반환을 하지 않아도 되서 편리하지만 변수 미리 선언하고 사용후 리셋을 하는 것도..... ^^ | 
| 
                                옥토넛
                                /
                                2014/11/20 19:01:46 /
                                추천
                                0
                             
<span color:#008080"="" style="box-sizing: border-box; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-left-radius: 0px !important;">unset($this->_ci_cached_vars) 말씀하시는건가요? | 
공유가 안되게 되면 서브뷰 로드 할 때 문제가 일어 나게 됩니다.
$this->load->view('head'); $this->load->view('content'); $this->load->view('tail'); // 공유 안되면 대략 난감!!!