Published Book on Amazon
All of IOT Starting with the Latest Raspberry Pi from Beginner to Advanced – Volume 1 | |
All of IOT Starting with the Latest Raspberry Pi from Beginner to Advanced – Volume 2 |
출판된 한글판 도서
최신 라즈베리파이(Raspberry Pi)로 시작하는 사물인터넷(IOT)의 모든 것 – 초보에서 고급까지 (상) | |
최신 라즈베리파이(Raspberry Pi)로 시작하는 사물인터넷(IOT)의 모든 것 – 초보에서 고급까지 (하) |
Original Book Contents
24.4.8 함수(function)
24.4.8.1 function의 정의
function은 프로그램 내에서 반복적으로 실행할 수 있는 문장 단위이다. function은 일정한 제약 조건하에서 사용자들이 임의의 내용으로 자유롭게 정의하여 사용할 수 있다. 다음과 같은 형식으로 정의한다.
function functionName( argument1, argument2, argument3…) { [ return; ] code to be executed; |
function 이름은 영문자나 underscore로 시작해야 하고, 대소문자를 구별하지 않는다.
function에서 argument는 선택적으로 사용할 수 있다. argument가 여러 개인 경우는 comma(,)로 구분해야 한다. function을 호출하는 프로그램은 argument를 이용해서 필요한 자료를 function으로 전달해 줄 수 있고, function 내부에서 argument는 변수처럼 사용된다.
function 내부에서는 모든 유효한 PHP 코드를 사용할 수 있고, 다른 function나 class 정의도 사용할 수 있다. function 내부에서 "return" 문을 사용하면 function의 처리를 중단하고, function을 호출한 프로그램으로 되돌아 오고, function의 처리의 결과를 "return" 문에서 지정하여 호출한 프로그램으로 되돌려 줄 수 있다.
[사용 Example]
<?php function foo($arg_1, $arg_2, $arg_3) { echo "예제 함수.\n"; return $retval; } ?> |
24.4.8.2 function의 사용
function은 해당 function이 시스템에 load될 때 실행되지 않고, 다른 프로그램에서 호출될 때 실행된다. 다른 프로그램에서 function을 호출할 때는 function 이름을 이용하고, 각각의 argument에 대해서 필요한 값을 지정할 수 있다. 다음과 같은 형식으로 호출한다.
[ $return = ] functionName( argument1-value, argument2-value, argument3-value …) |
function은 사용하기 전에 반드시 정의되어 있어야 한다. function 정의가 다른 함수 내에 있거나, 조건문 내부에 있는 경우는, 그 문장이 실행되어야 function이 정의된다.
function 내에서 "return" 문에서 특정한 값을 지정하여 실행하면, 이 값을 여러 용도로 사용할 수 있다.
PHP의 모든 함수와 클래스는 global scope가 적용된다. 함수가 다른 함수의 내부에서 정의되었더라도 외부에서 호출할 수 있으며, 반대도 성립한다.
PHP 내부에는 시스템이 기본적으로 제공하는 built-in 함수가 1000여 개 이상 제공되고 있다. 이들은 특별한 정의가 필요 없이 자유롭게 사용할 수 있다. 상세한 내용에 대해서는 다음을 참고하기 바란다.
■ http://php.net/manual/en/funcref.php
[사용 Example]
다음은 function에 대한 사례이다.
<?php function writeMsg() { echo "Hello world!"; }
writeMsg(); // call the function ?> |
다음은 function에 대한 다른 사례이다.
<?php function familyName($fname, $year) { echo "$fname Refsnes. Born in $year <br>"; }
familyName("Hege", "1975"); familyName("Stale", "1978"); familyName("Kai Jim", "1983"); ?> |
다음은 function 내에서 "return" 문을 실행하면서 특정한 값을 지정한 사례이다.
<?php |
다음은 특정 function이 다른 function의 내부에서 정의된 경우이다. 이때는 외부 function이 실행되기 전에는 그 내부 function이 정의되지 않는다.
<?php
// poo() can be called normally. poo(); // We can't call bar() yet since it is not defined // bar();
// the execution of foo() defines bar() function and make it accessible.
// As foo() is executed and bar() is defined, Now we can call bar(),
function poo() { echo "I exist immediately upon program start.\n"; } ?> |