삽질의 현장/- PHP

[삽잡이::php] 꼼꼼하게 체크하자! in_array(), ===(identical)

shovelman 2016. 7. 4. 21:40




예를 들어 

이와 같이 Qeury문을 날려 

결과를 받아오는 코드가 있다고 생각해보겠습니다.


자... 예외 처리를 해봅시다.

어떻게 하시겠습니까!?

뭐가 그리 어렵다고~ 그냥 empty() 함수 써서 확인하면 되지~



이얄~~~~~ 좋습니다! 굳!굳!굳! 


하지만, 조금 더 신중해야할 필요가 있습니다.

생각해보겠습니다.


위에서 언급한 것과 같이 NULL일 경우?



이외에도 여러가지로 신경써주면 좋을 듯합니다.


예를 들어 return 값이 제대로 된 결과 값이 아닌 false 인지~



아니면, return 값이 올바른 타입인지 말입니다.



죄송합니다. 다 꺼지라니~~~ 


하지만, 신경을 잘 써줘야겠지요?

혹시 모를 오류에 대비를 해야지요!


그래서 우리 이렇게 신경쓰면서 코딩합시다.


return 값이 null인지 확인하기!



결과 값 중 false가 있는지 확인하기!

(물론, false가 있어야될 때도 있겠지요... case by case~ )




원하는 Type이 맞는지 확인하기!



1
2
3
4
$aQueryResult[] = $this->modelShoveling->getResult();
if(($aQueryResult != null) && in_array(false, $aQueryResult, true)){
    // Good Good Good
}
cs


이렇게 우리 예외 처리를 꼼꼼하게 합시다~!

이 외에도 방법은 많겠지요!



위와 같은 예제 코드에 들어있는 in_array()함수에 대해서

간략하게 설명을 드리자면,


in_array() 함수는 

배열의 요소를 검사하는 PHP 함수입니다.

즉, '값이 배열 안에 존재하는지 확인'하는 함수라는 것입니다.



(출처_ PHP)


예 그렇습니다.

첫번째 인자인 needle이 존재하는지 확인합니다.

두번째 인자인 배열안에서 말입니다.


세번째 인자는 'strict' 즉, 엄격한 의미를 가지고 있네요.

그렇다는 의미는 자료형까지 확인하겠다는 것입니다.


꼼꼼하지요~ 


첫번째 인자가 배열안에 있으면 True

없다면 False를 반환하겠지요.



또한, 다른 예제 하나 보시겠습니다.


1
2
3
if($aResult['name'] === '삽잡이'){
    // Good Good Good
}
cs

결과가 '삽잡이'라는 string 형 문자열인지 확인하고 있습니다.


Equal과 Identical은 다른 사실 아시지요?

이전에도 해당 기능에 대해서 포스팅 한 기억이 있네요.


(참고_ ==(Equal)과 ===(Identical)의 차이)


아무튼... '삽잡이'라는 값과 같은지 비교하는 동시에

string 형인지 하는 Type까지 비교하는 것입니다.



이렇게 꼼꼼하게 예외 처리하며

예상치 못한 Error에 대비하며 코딩합시다!


굳~