포럼
변수 초기화, 선언에 대해
2014.12.15 17:26
PHP의 특성상 변수를 초기화 하지 않아도 되고 소스상 문제가 없지만 XE 코어부분을 보다보면 많이 초기화를 안했더라구요.
이 부분에 대해서는 다들 어떻게 생각하세요?
해당 내용들을 수정해서 PR을 해볼까도 생각해봤는데 아무래도 다른 개발자분들의 의견을 들어보는것도 좋을 것 같네요 ㅎㅎ
댓글 11
-
BJ람보
2014.12.15 19:16
-
devflow
2014.12.15 20:08
네
-
misol
2014.12.15 22:53
형식에 맞추어 PR 넣어주시면 아마 받아주실겁니다.
PHP 4.x 버전부터 지원하던 Core 기 때문에 PHP 5.x 의 strict 문법보다는 느슨한 부분이 군데군데 있습니다.
-
기진곰
2014.12.17 09:42
위와 같은 코드라면 $args가 제대로 초기화된 것 아닌가요? (빈 객체로 초기화된 거죠.)
아니면 위와 같이 해야 하는데 그렇지 않은 곳이 많다는 말씀이신가요?
-
devflow
2014.12.17 10:38
예, 예를들어 function a() { $args->a = 1; return executeQuery('a.query', $args); } 와 같은 소스를 말씀드리는겁니다. 문제는 없지만 형식에 어긋나는 소스죠
-
기진곰
2014.12.17 11:24
"이것 OR 저것" 형태의 질문에 "예"라고 대답하시다니 ㅠㅠ
어느 쪽에 "예"인가요 ㅠㅠ
위의 코드처럼 stdClass로 초기화하지 않고 $args->a를 쓰면
형식에 어긋날 뿐만 아니라 PHP 5.4부터는 아예 본격적으로 WARNING이 뜨네요.
-
devflow
2014.12.17 11:26
하하 후자를 말씀드린겁니다. new stdClass()를 해야하는데 하지 않은 곳이 많기 때문이죠. ㅎㅎ
-
GG
2014.12.15 20:40
index.php 호출할때마다 컨텍스트 초기화 되는것 아니었나요?
-
devflow
2014.12.16 00:56
네 초기화는 되죠. 근데 변수를 반복사용하다보면 올바르지 않은 사용의 소지가 있기때문에 주의해야하죠. 물론 지금 XE에는 그런 상황이 없어서 별다른 처리를 안하는 것 같아서 한번 포럼에 올려봤습니다
-
Lansi
2014.12.16 09:37
XE가 처음 나왔을 땐 PHP가 구버전이라서 별로 신경을 안 쓴 겁니다.
변수 초기화 같은 간단한 부분은 쉽게 PR을 받습니다.
-
휘즈
2014.12.17 18:37
이 상황은 아래 링크의 질문과도 연관이 있습니다.
php-fpm을 사용할 때에는 쥐약입니다.
https://www.xpressengine.com/qna/22892457
$args = new stdClass(); 같은 부분을 말씀하시는건가요?