제목 | 서로다른 뷰의 변수 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) 말씀하시는건가요?
|
공유가 안되게 되면 서브뷰 로드 할 때 문제가 일어 나게 됩니다.