본문 바로가기

프로그래밍 공부/PHP

PHP - continue문/break문, reqire문/include문 그리고 사용자 정의 함수

continue문/break문

continue문은 if문에서 조건식으로 판단하고 결과가 TRUE일 경우에 continue문을 실행한다. continue문을 실행하면 아래에 있는 다른 처리들을 건너뛰고 다음 반복문으로 이동한다. for문이나 while문에서도 사용한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
    $member = array("name" => "김철수","tel" => 010-0000-0000,"age" => 20,"tall" => 180);
 
    foreach($member as $key => $value){
        if($key == "name"){
            $title = "이름";
        }else{
            if($key == "age"){
                $title = "연령";
            }else{
                if($key == "tall"){
                    $title = "신장";
                }else{
                    print "처리를 건너뜁니다.";
                    continue;
                }
            }
        }
        print "$title : $value";
        print "<br>";
    }
?>
cs

반복 처리에서 배열을 처리할 때 값에 아무 데이터가 없을 때 처리를 계속하게 되면 오류가 발생한다. 이 같은 경우는 continue문을 사용해서 남은 처리를 건너뛰어 다음 반복으로 이동하게 한다. 위의 코드에 경우 tall을 키로서 데이터를 할당하고 있는데, if문에 따른 판단이 tall이 아니므로 else문의 print "처리를 건너뜁니다.";가 실행이 되고, 남은 처리인 print "$title : $value";print "<br>";을 건너뛰고 다음 반복으로 이동해 값의 수만큼 반복한다.

break문은 반복 처리를 중단할 때 사용한다. if문의 조건식이 TRUE로 판단된 경우에 break문을 실행하여 처리를 모두 중단하고 반복을 빠져나간다. 역시 for문과 while문에도 사용할 수 있다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
    $member[0= "John";
    $member[1= "Lee";
    $member[2= "Helena";
    $member[3= "Tommy";
    $member[4= "Alan";
    $i = 1;
    $limit = 3;
 
    foreach($member as $key => $value){
        if($i > $limit){
            print "반복을 빠져나옵니다.<br>";
            break;
        }
        print "이름 : $value";
        print "<br>";
        $i ++;
    }
?>
cs

break문을 사용한 코드는 먼저 배열에 이름을 할당해야 한다. $i는 반복 횟수를 카운트하는 변수이다. 여기에 1을 항당한다. $limit에는 반복을 제한하기 위한 횟수 3을 할당하고 3건만 표시하게 된다. foreach문에서 반복을 시작하면 $key에는 인덱스 번호가 할당되고 $value에는 이름이 할당이 된다. if문에 $i > $limit가 판단이 된다. 처음에는 조건이 TRUE가 되지 않아 성립이 안되 $i ++;까지 내려오게 되고 $i가 1이 증가하게 된다. 이후에 if문에 $i > $limit가 TRUE로 성립이 되면 break문으로 인하여 반복에서 빠져나오게 되는 것이다.

require문/include문

회원제 사이트와 같은 어플리케이션은 하나의 파일로 모든 어플리케이션을 작성할 수 없다. 따라서 같은 처리를 모아 서로 다른 파일에 작성하고 필요할 때에 읽어 들이는 방법을 사용한다. require문에 읽어 들이고 싶은 파일을 지정하여 읽어 들이면 실행이 된다.

1
2
3
4
<?php
    $name = "Johnson";
    $message = "등록 감사드립니다.";
?>
cs

먼저 위와 같이 data.php라는 읽어 들일 파일을 준비한다.

1
2
3
4
5
6
7
8
9
10
11
12
<html>
<head>
    <title>PHP TEST</title>
</head>
<body>
<?php
    require("data.php");
    print "$name 님<br>";
    print "$message<br>";
?>
</body>
</html>
cs

그리고 require.php라는 읽어 들이는 파일을 준비하고 위와 같이 작성하고 <?php ?> 안에 아까 작성했던 읽어 들일 파일인 data.php를 require문안에 require("data.php") 이렇게 작성을 해주면 된다.

include문은 require문과 같은 기능을 수행하지만 오류가 발생하였을 때의 처리가 다르다. 오류가 발생한 경우 include문은 Warning을 출력하고 처리를 실행하지만 require문은 Fatal Error가 되어 처리가 정지가 된다. 따라서 지정된 파일이 없을 경우에는 require문을 사용해 처리를 정지 시킬 수 있다.

사용자 정의 함수

자바스크립트의 function이다. PHP로 작성한 코드는 자바스크립트 처럼 파일에 작성한 순서대로 위에서부터 한 행씩 해석되며 실행이 된다. 따라서 수많은 처리를 작성하려면 방대한 코드를 위에서부터 순서대로 작성해야 하는데, 이런 처리의 흐름을 바꾸지 않고 다른 위치에 있는 코드를 사용하는 것을 가능하게 해주는게 사용자 정의 함수이다.

1
2
3
4
5
6
7
8
<?php
    function print_copyright(){
        print "<font size=2>";
        print "Copyright 2020 PHP All rights reserved.";
        print "</font>";
    }
    print_copyright();
?>
cs

위의 코드는 저작권을 표시하기 위한 함수이다. 함수의 이름은 print_copyright라는 함수이고 마지막의 print_copyright();문장은 함수를 실행시킨다는 의미이다.

자바스크립트와 마찬가지로 함수 안에 함수를 만들 수 있다. 

1
2
3
4
5
6
7
8
9
10
<?php
    function 함수명1(){
        처리1;
        처리2;
        함수명2;
        function 함수명2(){
 
        }
    }
?>
cs

위와 같은 식으로 함수 안에 함수를 만들 수 있다.