Raspberry Pi_Kor_24.4.8 PHP 함수(function)


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) {
    code to be executed;

    [  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 square($num)
{
    return $num * $num;
}
echo square(4);   // outputs '16'.
?>


 

다음은 특정 function이 다른 function의 내부에서 정의된 경우이다. 이때는 외부 function이 실행되기 전에는 그 내부 function이 정의되지 않는다

 

<?php


function foo()   {
  function bar()  {
    echo "bar() don't exist until foo() is called.
n";
  }
}

 

// 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. 
foo();

 

// As foo() is executed and bar() is defined, Now we can call bar(),
bar();

 

function poo() {

  echo "I exist immediately upon program start.\n";

}

?>

 

 


 

Leave a Reply