본문 바로가기

제대로알자, SW/웹 프로그래밍

웹 프로그래밍 입문(4) PHP 함수


오늘은 웹프로그래밍 입문 관련 공부 4번째 시간으로 PHP에서의 함수 선언과 호출에 대해서 공부해 볼 예정이다.

기본적인 함수의 사용과 특이점 위주로 정리해 볼 생각이다.

주로 실제 프로그래밍을 돌려보면서 결과 위주로 정리를 하겠다.

그럼 PHP에서 함수에 대해 간단하게 학습 해보자.


1. PHP 함수

- PHP를 매우 풍부한 언어로 만들어 주는 수백 개의 미리 생성된 내장 함수가 있다.

- 내장 함수 예

1
2
3
4
5
6
7
<?php
    echo strrev(" .dlrow olleH") . "<br>";  //문자열 반전
    echo str_repeat("Hip "3) . "<br>";  //문자열 반복
    echo strtoupper("hooray!") . "<br>";  //대문자로 변경
    echo strtolower("HOORAY!") . "<br>";  //소문자로 변경
    echo ucfirst("hOORAY!") . "<br>"//첫 글자만 대문자로 변경
?>
cs



- 실행 결과


2. 함수 정의

- 함수 정의의 일반적인 문법은 다음과 같다.

1
2
3
4
function function_name([parameter [, ... ]])
{
    //문장
cs


     1) 정의는 function 키워드로 시작한다.

     2) 함수명은 문자나 밑줄로 시작하며, 길이 상관 없이 문자, 숫자, 밑줄을 사용할 수 있다.

     3) 매개 변수는 콤마(,)로 분리되며 매개 변수의 수는 선택 사항이다.

     4) 함수명은 대수문자를 구분하지 않는다. 따라서, PRINT, Print, PrInT는 모두 동일한 print 함수를 의미한다.

- 함수 정의 예제

1
2
3
4
5
6
7
8
9
10
<?php
    $a = 14;
    $b = 17;
    echo "$a + $b = " . add($a$b) . "<br>";
    echo "$a + $b = " . ADD($a$b) . "<br>";  //대소문자 구분하지 않는다.
    function add($num1$num2)
    {
        return ($num1 + $num2);
    }
?> 
cs



- 실행 결과


3. 배열 반환

- 함수에서 여러 값을 반환하기 위해 배열을 return 하는 것이 가능하다.

- 배열 반환의 예

1
2
3
4
5
6
7
8
9
10
11
12
<?php
    $names = fix_names("WILLIAM""henry""gatES");
    echo $names[0] . ", " . $names[1] . ", " . $names[2] . "<br>";
            
    function fix_names($n1$n2$n3)
    {
        $n1 = ucfirst(strtolower($n1));
        $n2 = ucfirst(strtolower($n2));
        $n3 = ucfirst(strtolower($n3));
        return array($n1$n2$n3);
    }
?>
cs


- 실행 결과



4. 전역 변수 반환

- 전역 변수를 선언함으로써 외부에서 만들어진 변수를 함수 내에서 접근할 수 있게 할 수 있다.

- 전역 키워드와 변수명을 사용해 코드의 어느 곳에서나 접근 가능하다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
    $a1 = "WILLIAM";
    $a2 = "henry";
    $a3 = "gatES";
            
    echo $a1 . " " . $a2 . " " . $a3 . "<br>";
    fix_names();
    echo $a1 . " " . $a2 . " " . $a3 . "<br>";
            
    function fix_names()
    {
        global $a1$a1 = ucfirst(strtolower($a1));
        global $a2$a2 = ucfirst(strtolower($a2));
        global $a3$a3 = ucfirst(strtolower($a3));
    }
?>
cs


- 실행 결과


5. 파일 포함과 요구

- 다른 파일을 포함하고나 요구하여 새로운 파일에 기존 파일을 추가해 넣을 수 있다.

- 포함의 경우, include와 include_once 두가지 키워드가 존재한다.

- include는 파일 내용을 그대로 새 파일에 불러오는 명령어 이다.

- include_once는 기본적으로 include와 기능이 동일하지만, 중복을 제거한다는 특징이 있다.

- include 사용 예제

1) index.php

1
2
3
4
5
6
7
<?php
    echo "START index.php." . "<br><br>";
    include "library.php";
    echo "<br><br>";
    include "library2.php";
    echo "<br><br>" . "END index.php"
?> 
cs

2) library.php
1
2
3
<?php
    echo '<font color = "blue">Test Format<br>This page will be included.</font>';    
?>
cs

3) library2.php

1
2
3
<?php
    include 'library.php'
?>
cs


- 실행 결과

      library.php 파일 내용이 2번 중복 처리되는 것을 확인할 수 있다.


- include_once 사용 예

 * 다른 파일의 앞의 예제와 동일

 [ library2.php ]

1
2
3
<?php
    include_once 'library.php'
?>
cs


- 실행 결과


- 파일이 절대적으로 필요하면 파일을 요구하면 된다.

- 표면적으로는 include와 require는 동일한 결과로 보여진다.

- 일반적으로 파일을 요구할 때는 항상 require_once를 사용하는 것을 권한다.


6. PHP 버전 호환성

- PHP는 개발이 진행된 언어로 여러 개의 버전이 있다.

- function_exists 함수를 이용해 함수가 정의되어 있는지 확인이 가능하다.

- function_exists 확인 예제

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
    if( function_exists("myFunc") )
    {
        echo "Function exists";
    }
    else
    {
        echo "Function does not exist - better write our own";
    }
            
    function myFunc()
    {
        echo "MY Function!" . "<br>";
    }
?>
cs


- 실행 결과

    ※ 미리 정의된 내장 함수와 사용자 정의 함수 모두 검사 가능하다.


이상으로 PHP 함수의 선언과 사용 관련된 내용의 정리를 마무리 한다.

다음 포스팅에서는 PHP 클래스 선언 방법과 객체 생성에 대해 확인해 보겠다.