이 글은 PHP 공식 문서 사이트에서 함수를 보는 방법을 담고 있습니다.

 


PHP 단어가 코끼리 모양을 닮았서..

 

 생활코딩을 통해 웹페이지 만들기 코스를 졸업한 사람이라면 한 번쯤은 PHP공식문서 사이트에 접속해 본 일이 있을 겁니다. 혹시 한 번도 공식 문서 사이트에 접속한 적이 없는 분이 있을까 봐 링크를 아래에 남겨드릴게요.

 

 

PHP: PHP Manual - Manual

 

www.php.net

 

 코딩을 하다 보면 막히는 구간도 많고 커뮤니티에 질문을 올리면 공식 문서 링크를 남겨주시는 분들이 많습니다. 처음 공식 접하는 분들께서는 보자마자 가슴이 답답해지는 것을 느껴보셨을 거예요. 그 답답함을 지금부터 하나씩 같이 해결해보죠.

 

 사실 저 같은 경우에는 공식 문서에 들어가서 함수를 검색하는 일은 거의 없었습니다. 당연하게도 구글 검색을 하는 게 더 간단하니까요. 구글은 위대합니다. 혹시나 네이버나 다음에서 궁금한걸 자주 물어보는 습관을 가지셨다면 코딩에 관해서는 그냥 구글 이용하세요. 두 번 추천드립니다.


 그럼 배열 안에 값이 존재하는지 확인하고 싶을 때 어떻게 하는지 한번 볼까요? "PHP 언어에서 배열 안에 값을 찾고 싶다!"라고 구글에 입력하면 여러 가지 결과가 나옵니다. array_search, in_array 정도가 나오는데 저희는 공식문서를 보면서 배울 거니까 Manual - PHP라고 쓰인 웹페이지를 클릭하세요. 그럼 in_array부터 살펴보겠습니다.

 

Manual - PHP가 공식문서를 나타냅니다.

 

 이제 들어가면 처음 보는 분들은 네 번째 줄부터 처음 보는 형식이 신기할 것이고, 익숙하신 분들은 바로 사용 방법과 리턴 형식을 파악했을 겁니다. (참고로 in_array, array_search와의 차이점을 간단하게 설명드리면 in_array는 boolean(true, false)을 리턴하고, array_search는 찾고자 하는 value의 key값을 리턴합니다.)

 

 

가장 처음 보이는 내용은 in_array 함수의 정의입니다. 배열 안에 값이 존재하는지 체크하는 함수라고 적혀있군요.

 

 

 두 번째는 함수의 구성입니다. 익숙해지면 이 구성만 보고도 함수의 역할을 확실하게 알 수가 있습니다. 하나하나 살펴볼까요?

  • in_array : 함수의 이름입니다.
  • mixed $needle: $needle은 찾고자 하는 내용입니다. 앞에 mixed는 이 $needle이라는 값이 "혼합형", 쉽게 말해서 자료형이 문자열, 숫자 등을 가리지 않는다는 뜻입니다.
  • array $haystack : 값을 찾고자 하는 대상 배열을 말합니다. 이 값은 array여야 한다고 명시가 되어 있으니 배열만 가능합니다.
  • bool $strict = FALSE : strict는 엄격하다는 의미입니다. 이 값이 참일 경우 값을 찾을 때 값의 type(자료형)까지 확인한다는 내용일 것 같습니다. 아래 parameters(매개변수)에서 확인해보도록 할게요. 이 strict의 경우 중괄호([])로 감싸져 있는데 생략이 가능하다는 표현이에요. 생략할 경우 기본값은 FALSE로 설정되어 있군요.
  • : bool : 마지막에 콜론 이후에 bool이라는 말은 이 함수의 결과 값이 boolean, 참 또는 거짓으로 나온다는 뜻입니다.

 대부분의 경우 구성 설명을 보고 바로 함수를 사용해보면 됩니다. 이후에 나오는 Parameters, 매개 변수에 대한 설명은 대략적으로 훑고 넘어가면 됩니다. 그리고 Note는 꼭 챙겨보세요. 놓치기 쉬운 내용을 알려주거든요.

 

 

 needle parameter에 Note가 있군요. needle이 문자열일 경우에는 대소문자를 구분한다고 합니다. 영문으로 된 문자열을 찾을 때는 주의를 해야겠네요. haystack은 배열이라는 내용이고, strict가 TRUE일 경우 haystrck, 즉 검사 대상이 되는 배열에 들어있는 값을 찾을 때 types(자료형)까지 확실하게 비교해준다고 하네요. 그럼 또 궁금해집니다. 이 strict라는 값이 FALSE일 때와 TRUE일 때 값이 어떻게 달라지는지 알고 싶어서 스크롤을 밑으로 내리다 보니 아래 이런 내용이 나오네요.

 

// Example array

$array = array(
    'egg' => true,
    'cheese' => false,
    'hair' => 765,
    'goblins' => null,
    'ogres' => 'no ogres allowed in this array'
);

// Loose checking -- return values are in comments

// First three make sense, last four do not

in_array(null, $array); // true
in_array(false, $array); // true
in_array(765, $array); // true
in_array(763, $array); // true
in_array('egg', $array); // true
in_array('hhh', $array); // true
in_array(array(), $array); // true

// Strict checking

in_array(null, $array, true); // true
in_array(false, $array, true); // true
in_array(765, $array, true); // true
in_array(763, $array, true); // false
in_array('egg', $array, true); // false
in_array('hhh', $array, true); // false
in_array(array(), $array, true); // false

 

 쭉 보니 충격적인 내용이군요. strict값을 설정하지 않고 기본값인 FALSE일 때 예제의 경우 모두 true를 리턴하는 것을 확인할 수 있습니다. TRUE로 설정해야 key값이 아닌 해당하는 value값이 있을 때만 리턴 값이 true로 나오네요. in_array함수를 사용할 때는 가능하면 Strict를 TRUE로 체크하는 습관을 들이도록 해야겠네요.


 여기까지가 알고 보니 간단한 PHP 공식 문서에서 함수 보는 방법이었습니다. 여러 함수 중에 이 함수를 선택한 이유는 개인적으로 자주 쓰기도 하고, 간단하고, 주의사항도 있어서 공식 문서의 필요성에 대해 생각해볼 수 있을 것 같아서입니다. 이 예제를 통해 공식 문서 보는 방법이 이해가 잘 되었으면 좋겠네요. 그리고 함수를 설명하다 보니 type(자료형)에 대한 내용과 함수의 구조에 대한 내용에 대한 글도 필요하다는 생각이 들었습니다. 다음 글은 좀 더 기본적인 자료형과 함수의 구조에 관해 글을 써봐야겠어요.

 

 더 자세한 내용은 생활코딩 이고잉님이 만들어주신 영상에서 확인하세요. 2012년 버전이라 조금 다르지만 큰 내용은 크게 다르지 않으니 도움이 될거에요.

 

PHP - 문서보는법 by 생활코딩

 

 이해가 되지 않거나 잘못된 내용은 댓글로 알려주세요. 그럼 안녕히!

+ Recent posts