로그인

검색

php에서 함수라고 하는 것은 어떤 코드들의 집합을 하나의 단위로 묶어둔 것을 함수라고 할 수 있습니다. 왜 이 함수라는 단위로 구분을 해 놓을까요?

 

라인에 적혀진 코드들이 순서에 의해 쭉 실행이 되면 될텐데 굳이 왜 어떤 특정 기능을 구분하여 함수로 구분하냐면 그건 바로 반복된 코드의 재사용을 함수의 호출이라는 아주 간단한 코드로 대체할 수 있기 때문입니다.

 

즉, 코드의 반복된 사용이나 코드의 공유 등에서 아주 유용하게 사용할 수 있는 것이죠.

 

함수라는 것의 구분 없이 그냥 코드만 계속 나열한다면 이전에 사용된 코드를 또 사용해야 할때 복사해서 붙여넣기해서 똑같은 코드를 또 작성해야 할 것입니다.

 

그런데 아주 간단하게 

A함수 호출할게!  라고 코드를 적어주면 

 

A 함수 안에 있는 코드가 1줄이던 100줄이던 그 코드가 그대로 실행이 되게 되어 있는 것입니다.

 

 

그럼 자주 사용되는 기능을 미리 함수로 만들텐데 함수를 선언 또는 만들때는 간단한 규칙을 따르면 됩니다.

 

function 함수명() {

필요한 코드들.....

}

 

 

저렇게 미리 작성해 놓은 함수를 사용하고 싶은 곳에서 함수를 호출하기 만 하면 됩니다.

함수명();

이렇게 간단한 호출로 해당 함수가 호출이 되어 함수 안의 코드가 그자리에서 그대로 실행이 됩니다.

 

function hello() {

print '안녕하세요! 반갑습니다.';

}

 

위와 같이  hello 함수를 미리 만들어 놓고 필요한 곳에서 저 함수를 호출하기만 하면 됩니다. 그런데 함수가 호출하는 곳 보다 뒤에 있어도 가능하다는 것을 알면 신기할 것 입니다. 모든 코드를 읽고난 후 함수 호출 부분도 실행이 되기 때문에 가능하다고 하네요.

 

 

그럼 적당한 부분에서 print '안녕하세요! 반갑습니다.'; 의 코드를 사용하고 싶다면

hello(); 

이렇게 호출만 해주면 된다는 것 입니다.

 

함수의 괄호() 부분이 궁금하신 분도 계실 겁니다. 저도 그랬으니까요. 사실 함수라는 것을 모르고 함수를 이미 많이 사용하셨던 분들도 계실 겁니다. 뭔가 기능을 만들고 할때 php내장함수를 호출해서 사용하거나 하셨는데 그게 함수라는 것을 몰랐을 뿐이죠.

 

 

괄호 안에 함수 안의 코드에서 사용할 특정한 값을 받아올 수 있는 인수라는 것을 사용할 수 있습니다. 괄호가 비어있다면 인수를 사용하지 않는 것이구요.

 

function hello($name) {

print '안녕하세요!' . $name . '님 반갑습니다.';

}

 

위와 같이 인수를 사용했다면 함수를 호출할때 해당 인수의 값을 꼭 포함시켜서 호출을 해야 합니다. 그렇지 않고 그냥 호출을 하면 에러가 발생합니다.

 

hello('철수');

이렇게 호출하면 

 

안녕하세요! 철수님 반갑습니다. 라고 출력이 되는거죠.

 

물론 인수를 저렇게 직접 코딩하는게 아닌 무언가 사용자에게 입력을 받은 변수를 사용해서 그 변수로 호출하게 될 겁니다. 불특정한 다양한 입력의 인수에 대응을 하겠죠.

 

그런데 인수를 사용해야 하는 함수인데 해당 인수에 아예 기본값을 지정할 수 있습니다. 기본값을 지정하면 값을 넣지 않고 호출한 경우 공통적으로 사용되는 것이 기본값이 되는 것이고 호출할때 값을 직접 넣어서 호출했다면 그 값이 사용되게 되는 것입니다.

 

function hello($name='방문자') {

print '안녕하세요!' . $name . '님 반갑습니다.';

}

 

이렇게 함수가 선언이 될때 인수의 값 기본값이 방문자 라고 지정이 되어 있다면

hello('철수'); 이렇게 호출하면 

안녕하세요! 철수님 반갑습니다.

 

hello(); 이렇게 호출을 하면 

안녕하세요! 방문자님 반갑습니다.

 

이렇게 기본값이 사용되어 에러가 없이 함수가 실행이 되게 됩니다.

 

함수에 인수는 1개가 아닌 여러개가 사용될 수 있습니다. 함수 안에서 여러개의 값을 받아서 연산이나 뭔가 작업을 해야 할 경우가 많으니까요.

그럴 경우 ,(콤머) 로 구분해서 여러개를 사용할 수 있습니다.

 

그런데 인수의 기본값을 지정하지 않고 사용하는 인수 즉 필수로 사용해야 하는 인수와 그렇지 않고 기본값을 지정한 선택적 사용 인수를 섞어서 사용할때는 꼭 주의해야 할 사항이 있습니다. 

 

 

function hello($value1, $value2, $vlaue='기본값') {

코드

}

 

위와 같이 기본값이 지정된 생략할 수도 있는 인수가 뒤쪽에 있어야 합니다. 그렇지 않으면 호출시 어떤 것을 생략한 것인지 명확하게 알수가 없어 코드 결과가 이상해 질 수 있기 때문입니다.

Who's 꿀팁관리소장

profile
라이믹스로 커뮤니티 사이트를 운영하는 비개발자 운영자 입니다.
파트너쉽 맺으실 사이트 운영자분 환영합니다.
2 추천

php 기초지식(24)

php를 학습할 수 있습니다.

  1. read more
  2. read more
  3. php 객체 확장

    Date2021.09.20 Views161 Votes2
    Read More
  4. php 객체 생성자 __construct 메서드

    Date2021.09.17 Views403 Votes2
    Read More
  5. Read More
  6. php 객체 지향의 이해 4

    Date2021.09.12 Views215 Votes2
    Read More
  7. php isset()

    Date2021.09.11 Views109 Votes2
    Read More
  8. php 변수의 영역 전역변수와 지역변수

    Date2021.08.29 Views1574 Votes2
    Read More
  9. php 함수의 반환값

    Date2021.08.28 Views140 Votes2
    Read More
  10. php 함수의 기초

    Date2021.08.25 Views161 Votes2
    Read More
  11. php 다차원 배열

    Date2021.08.14 Views416 Votes2
    Read More
  12. Read More
  13. Read More
  14. php 배열의 원소 제거 unset()

    Date2021.08.08 Views292 Votes2
    Read More
  15. Read More
  16. Read More
  17. php 배열(array)

    Date2021.07.31 Views152 Votes2
    Read More
  18. php 반복문 for, while

    Date2021.07.28 Views385 Votes2
    Read More
  19. php 증감 연산자 ++, -- 3

    Date2021.07.27 Views200 Votes2
    Read More
  20. 활용이 가장 많은 중요한 if 조건문 3

    Date2021.07.26 Views188 Votes2
    Read More
  21. php 이스케이프 \(역슬래쉬) 사용 1

    Date2021.07.24 Views638 Votes2
    Read More
  22. Read More
Prev 1 2 Next
/ 2