질문 Q #8984
register_globals = on???
kimswave 2010-05-28 20:08:33
register_globals = on 되어 있으면 무조건 변수를 초기화 해주어야 하나요?

클래스의 함수의 내부에서 변수가 선언될 때

보통 초기화 시키지 않고 그냥 $nav 뭐 이런식으로 하면 되는데

register_globals = on이 되어 있으니깐 $nav = array(); 뭐 이런식으로 초기화 구문이 안들어가면 에러가 나네요.

register_globals = off로 되어 있을 때는 그냥 초기화 안해줘도 되는거 같은데...

클래스 내의 함수에서 사용하는 변수의 경우 초기화 없이 바로 그냥 사용하면 지역변수가 되는게 아니라

전역변수가 되는건가요? 그리고 register_globals = off로 되어 잇으면 전역변수 설정이 불가하니깐 그게 지역변수가 되어서 그런

건가요?
답변 4
#1 kimswave 2010-05-28 20:09:01
아니면 버전이 달라서 그런가요?
#2 kimswave 2010-05-28 20:09:17
보통 register_globals = on으로 두나요? off로 두나요?
#3 kimswave 2010-05-28 20:26:00
아~~~~~~~~~~~~~~~~~ 자문자답입니다.

register_globals_on과 는 상관이 없었습니다.

index.php 파일에 있는 error_reporting(E_ALL); 이렇게 설정되어 잇으면,

변수가 초기화 안되면 에러를 발생시킵니다.

error_reporting(0);

이렇게 설정되어 잇으면, 변수 초기화 없이 사용할 수 있습니다.

기본적으로 변수는 초기화 시켜서 사용하는게 바람직하다고 php 메뉴얼에 나와 있네요.

그런데 저기서 error_reporting(E_ALL); 이거나, error_reporting(0);  둘 중에는 뭐가 좋을까요?

어떻게 설정하는게 더 좋을까요?





#4 변종원(웅파) 2010-05-29 00:42:41
개발시는 error_reporting(E_ALL); 으로 변수는 초기화해서 사용하시고
실 서비스시는 error_reporting(0); 으로 하시면 됩니다.
불필요한 에러나 경고메세지는 해킹에 이용될 수 있습니다.