오늘도 발견한 신기한 PHP의 성질.
우선 static 키워드는 뒤의 변수는 상수만을 어사인 할 수 있고 Expression은 오지 못한다.
http://www.php.net/manual/en/language.variables.scope.php 의 Example 7 참고.
이제 스트링을 어사인 하는 경우를 생각해 보자.
이경우는 문제가 없다. 허나
이때는 스트링이 익스프레션으로 간주 되기 때문에 문법 에러가 발생한다. '$b'가 문제.
자 이제 첼린지.
$뒤에 문자가 저렇게 되면? 역시나 문법 에러가 발생한다.
Double Quoted String에서 '$'는 '\$'로 이스케이핑 하는 것이 정석이다.
대충
에서 망했다 오늘. 코딩경력 20년차에 문법에러라니.. 쪽팔려라 ㅠ.ㅠ
레귤라 익스프레션과 스태틱이 만나면 이런 일도 발생한다.
재미있는 것은 Eclipse의 PDT나 Zend Studio에서는 '$b'는 문법 에러를 보여주지만 '$'나 '$@'만 쓰면 정상적이라고 인식한다. '$'뒤에 '{'나 alpha-numeric 이 오지 않으면 당연히 '$'는 '$' 케릭터로 인식할 수 있지만 파서의 특성 차이로 아마 이런 일이 발생하는 듯. PHP 파서는 '$'만 나타나면 익스프레션으로 파싱하는듯 하다. 그와중에 뿜는 에러명이
쌍따옴표가 못온다고라고라;;;;;
Double Quoted String에서 '$'를 쓸땐 이스케이핑 해 주는 것이 정석일듯 하다.
우선 static 키워드는 뒤의 변수는 상수만을 어사인 할 수 있고 Expression은 오지 못한다.
http://www.php.net/manual/en/language.variables.scope.php 의 Example 7 참고.
이제 스트링을 어사인 하는 경우를 생각해 보자.
static $a = "a";
이경우는 문제가 없다. 허나
static $a = "$b";
이때는 스트링이 익스프레션으로 간주 되기 때문에 문법 에러가 발생한다. '$b'가 문제.
자 이제 첼린지.
static $a = "$";
$뒤에 문자가 저렇게 되면? 역시나 문법 에러가 발생한다.
Double Quoted String에서 '$'는 '\$'로 이스케이핑 하는 것이 정석이다.
대충
static $pattern = "@^gendoh$@";
에서 망했다 오늘. 코딩경력 20년차에 문법에러라니.. 쪽팔려라 ㅠ.ㅠ
레귤라 익스프레션과 스태틱이 만나면 이런 일도 발생한다.
재미있는 것은 Eclipse의 PDT나 Zend Studio에서는 '$b'는 문법 에러를 보여주지만 '$'나 '$@'만 쓰면 정상적이라고 인식한다. '$'뒤에 '{'나 alpha-numeric 이 오지 않으면 당연히 '$'는 '$' 케릭터로 인식할 수 있지만 파서의 특성 차이로 아마 이런 일이 발생하는 듯. PHP 파서는 '$'만 나타나면 익스프레션으로 파싱하는듯 하다. 그와중에 뿜는 에러명이
PHP Parse error: syntax error, unexpected '"' in ...
쌍따옴표가 못온다고라고라;;;;;
Double Quoted String에서 '$'를 쓸땐 이스케이핑 해 주는 것이 정석일듯 하다.
'개발&Development > 프로그래밍 일반' 카테고리의 다른 글
여러 분야 파기 (6) | 2008.11.07 |
---|---|
개발자의 기본! 너가 다루는 데이타가 어떤 타입인지를 알라. (1) | 2008.09.01 |
자바스크립트 완벽 가이드 (3) | 2008.06.09 |
대단한 PHP (3) | 2008.05.06 |
11번가 (29) | 2008.02.28 |