티스토리 뷰
오늘 PHP로 작업하다가 일반적인 언어의 유효영역(scope)로 생각하다가 한시간을 낭비한 일이 있었다.
<?php
$apiHandler = getApiHandler();
switch(method)
{
case 1: doFunction1(); break;
case 2: doFunction2(); break;
}
function doFunction2()
{
$apiHandler->call("foo");
}
?>
: 위와 같이 썼는데, 당연히 전역변수로 선언한 $apiHandler가 함수 내에서 $apiHandler 이렇게 바로 접근하면 될 줄 알았는데, object가 undefined라고 자꾸 나와서 왜그런가 했더니 로컬 함수 영역은 글로벌과는 별로도 따진다는 것이다. 만약에 함수 밖에 선언한 전역 변수를 사용하고자 한다면,
function doFunction1()
{
global $apiHandler;
$apiHandler->call("foo");
}
: 이렇게 global로 정의를 해주면 전역변수로서 $apiHandler를 접근하게 된다. 이외에서 $GLOBALS 를 사용하는 방법도 있다.
function doFunction1()
{
$GLOBALS['apiHandler']->call("foo");
}
: 함수로 좀 나눈다고 시간 낭비를 하긴했으나, PHP에 대해서 조금은 더 공부를 한 것 같다. 경험하지 않으면 썩 와닿지 않는 부분을 제대로 경험했다.
끝.
- Total
- Today
- Yesterday
- 안드로이드 앱 개발 기초
- HTML5 튜토리얼
- Javascript
- 팁
- gre
- 자바스크립트
- TIP
- 샷
- mini project
- Writing
- 속깊은 자바스크립트 강좌
- google app engine
- HTML5
- 강좌
- 뽐뿌
- php
- gae
- 서울
- K100D
- ny-school
- Python
- GX-10
- 삼식이
- 안드로이드
- c++
- 탐론 17-50
- Android
- 사진
- lecture
- java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |