CI 묻고 답하기

제목 [질문] 클래스 상속 후 전역 변수 지정 사용에 대한 고민
글쓴이 내안의다른삶 작성시각 2014/12/10 14:58:49
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 15399   RSS
안녕하세요. 

요즘 날씨는 좀 풀렸지만 곧 눈이 올것 같은 꾸물꾸물한 날씨속에 모두 건강챙기시길 바랍니다. 

제가 CI를 사용하고 사이트를 만들어보는 중에 필요에 의해서 
클래스 시작전에 제가 만든 임의의 컨트롤러의 클래스를 상속받아
해당 클래스안의 함수를 호출하여 return 값을 
전역 변수로 지정하여 사용하고자 하는데 기능상으로는 문제없이 동작하는 것을 확인 했습니다만
클래스의 상속을 올바르게 사용하고 있는지 모르겠어서 이렇게 질문드립니다. 

예  ) 클래스를 상속 받아 사용하는 컨트롤러 문서

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
require_once 'login.php';    
$login = new login();
$loginid = $login->login();

class test extends CI_Controller {
    function __construct()
    {
        parent::__construct();
        global $login;
        global $loginid;
    }
}
?>

위와 같이 사용해도 문제가 없을까요 ? 
클래스 및 상속의 사용에 대해 정확한 확신이 없어 질문 올립니다. 

읽어주셔서 감사합니다. 
좋은 하루되세요 ^^ 
 다음글 "https://"주소에서 나는 에러... (1)
 이전글 form_validation이 제대로 작동을 안합니다 ... (1)

댓글

한대승(불의회상) / 2014/12/10 15:13:46 / 추천 0
아래처럼 클래스 내부에서 사용하면 전역변수로 지정 하지 않아도 됩니다.
 
class test extends CI_Controller {
    function __construct()
    {
        parent::__construct();

        require_once 'login.php';    

        $login = new login();
        $loginid = $login->login();
    }
}
내안의다른삶 / 2014/12/10 15:19:37 / 추천 0
한대승님 답변 감사합니다. ^^ 
질문 올릴때마다 같이 고민해주셔서 감사합니다. ㅎㅎ 

위와 같이 변경하여 사용해도 되는지 생각을 못했네요 ㅠ.ㅠ 
그런데 혹시 제가 적은 방법으로 사용하면 문제되는 사항이 있을까요? 

좋은 방법을 알려주셨지만 그래도 궁금하네요 ㅎㅎ 
한대승(불의회상) / 2014/12/10 15:35:51 / 추천 0
전역 변수를 사용 하게 되면 실수로 의도하지 않게 변수의 내용이 수정 되는 경우 헬게이트 열리게 됩니다. ^^
가장 잡기 힘든 버그 중 하나 입니다.
내안의다른삶 / 2014/12/10 15:56:41 / 추천 0
명확하게 해결되어 정말 다행입니다. 
다시 한번 친절한 답변 달아주신 것 감사합니다. ^^