웹솔루션개발 22년 노하우! 해피CGI의 모든것

[해피CGI][cgimall] 해깔리는 global 쉽게 풀어보기 본문

웹프로그램밍 자료실/알짜자료 골드팁

[해피CGI][cgimall] 해깔리는 global 쉽게 풀어보기

해피CGI윤실장 2017. 3. 23. 09:37
해피CGI 입니다. php를 쓰다보면 global 에 대해서 궁금하게 생각하시거나 혹은 해깔리는 경우가 종종있습니다. 간단하게 global은 전역변수를 사용하겠다는 뜻입니다. 고곳이 무엇인고 하니~ ^.^ 예를 들어 test.php가 있고 function.php가 있다고 가정합니다. test.php는 아래와 같은 코드라고 가정합니다.
[프로그램코드]
<?php include ("function.php"); $a = "1"; //아래 $b 값은 function.php에서 선언된 일반변수라고 가정합니다. //$b는 2라고 가정합니다. $c = $a + $b; print "$c"; ?>

이렇게 하면 3이 잘 출력될겁니다. 하지만 아래 코드를 한번 봅시다.
[프로그램코드]
<?php include ("function.php"); $a = "1"; //아래 $b 값은 function.php에서 선언된 일반변수라고 가정합니다. // get_add 펑션을 불러 계산을 시킵니다. get_add($a); print "$c"; function get_add($a){ $c = $a + $b; return $c; } ?>

$c 값이 이상할겁니다. 이때 function get_add에서 global이 쓰이게 됩니다. function get_add를 아래 처럼수정을 해야 맞지요.
[프로그램코드]
function get_add($a){ global $b; $c = $a + $b; return $c; }

이 global 개념은 펄에서도 동일하게 적용됩니다만 php가 perl 보다 좀더 제한적인 개념이 많습니다. 위 예제와 비슷한 펄코드의 서브루틴의 경우 다시 전역변수로 지정을 할 필요가 없거든요. 각각 장단점이 있겠다고 볼수 있습니다. 좋은 하루되세요. 추신 : 오늘 이게 해깔려서 (perl에 익숙한터라 ^.^) 혼났네요.

 

홈페이지바로가기 

Comments