제목 | input->post()로 받는 값에 문자열로 0을 넣으면 false를... | ||
---|---|---|---|
글쓴이 | kimsy | 작성시각 | 2012/06/25 21:28:52 |
|
|||
if( $value = $this->input->post('value')) 요런 코드인데, value라는 값에 다른 문자열 다 괜찮은데, 문자열로 0이 넣어져서 오면 false를 반환하는군요... 버그일까요? 다른 방법을 쓰긴 했지만 찝찝해서 여쭤봅니다 감사합니다! |
|||
다음글 | CSS나 js파일 어떻게 관리하세요? (6) | ||
이전글 | 위지윅에디터 사용시 ..html 손실 문제.. (2) | ||
변종원(웅파)
/
2012/06/25 21:54:32 /
추천
0
|
lyx
/
2012/06/26 00:09:15 /
추천
0
조건문이 아닌 대입문을 써버리셨네요 ㅠ
|
kimsy
/
2012/06/26 10:56:54 /
추천
0
웅파님 말씀대로네요
다른언어에서 0과 "0"은 다르지만 웹언어에서는 인자가 모두 스트링으로 넘어오는 이상 저렇게 처리되는게 맞는 것 같네요. lyx님:저 구문은 $this->input->post('value')에서 리턴하는 값이 $value에 넣어진 후에 if에서 $value에 들어있는 값을 평가하는 코드입니다^_^ |
kaido
/
2012/06/26 17:38:24 /
추천
0
php의 이상한 특징 이라고 생각 하고있습니다.
어딘가에 설정 하는게 있는지도 모르겠지만 말이죠? 0 과 flase 와 null 과 빈값은 전부 다른 값입니다. 그런데 php는 사실상 동일하게 보고있습니다. C 할때는 -1 = false 0 = read or null 1 = true 정해진건 아니지만 대충 이런 느낌으로 숫자를 상태값으로 사용했는데 php 에는 0 값을 가지고 판단 해서는 안되겠더군요. 그래서 가급적이면 0 을 가지고 조건문을 안걸며 true false 로만 하고있습니다. 숫자도 가급적 문자화 해서 처리 하고있어요. |
milosz
/
2012/06/26 19:05:18 /
추천
0
이게 양날의 검이라... 제네릭이 있다면 번거로운 필터링이 따로 없어도 될텐데 이런게 좀 약합니다.
===, gettype 등을 활용해서 꼼꼼하게 걸러주는 방법밖에 없는 것 같네요. |
닥스훈트
/
2012/06/28 19:36:12 /
추천
0
if($value == 식)
뭐 이런식으로 일단 해야 되겠는데요
|
if( 0 ) 과 같은 상황인데 false가 안나오면 더 이상한거 아닌가요?
값이 있는지 체크하려면 if( $value === '' ) 정도로 바꾸시는게 좋을 것 같네요.