happy cat image

everdevel

Web Technology, 에버디벨

UI 변경

EEOS

에버디벨 책을 학습할 수 있는 클라우드 개발 환경을 제공합니다.
개발환경구축없이 태블릿에서도 개발할 수 있는 책의 예제와 프로젝트
오직 당신을 위한 스토리지, URL, DB, 무제한 트래픽
그리고 웹기반 개발환경을 제공합니다.

더 알아보기
에버디벨이 만든 무료 클라우드 개발환경을 소개합니다.

네임스페이스

한 웹페이지에서 똑같은 함수명으로 함수를 선언하면 오류가 발생합니다.
이는 폴더에 같은 파일을 둘 수 없는 것과 마찬 가지입니다.
a라는 폴더에 b.php 파일을 2개 둘 순 없지만 a라는 폴더에 b.php 파일을 두고 b라는 폴더를 생성해 b.php 파일을 둘 수 있습니다.
폴더에 대해 언급한 이유는 namespace(이하 네임스페이스)를 폴더라고 생각하면 이해하기 쉽기 때문입니다. 다음과 같이 동일한 이름의 함수명을 사용하면 에러가 발생합니다.

<?php
    function hello(){}
    function hello(){}
?>

(로그인을 하시면 위의 코드를 실행 할 수 있습니다.
oAuth인증 방식으로 빠르고 간편하게 로그인할 수 있습니다.
네이버, 구글, 카카오, 라인의 ID로 빠르게 로그인 하세요.)

로그인 하여 위의 코드를 클릭 한번에 실행하려면 여기를 클릭해 주세용.

위 코드의 결과

위와 같이 에러가 발생하죠. 위의 코드를 네임스페이스를 사용해서 에러가 안나게 해봅시다.

네임스페이스 사용 방법

namespace 네임스페이스명;
함수
namespace 네임스페이스명;
함수

자 그럼 한번 해봅시다.

<?php
    namespace hello;

    function hello()
    {
        return '첫번째 hello함수입니다.';
    }

    namespace hello2;

    function hello()
    {
        return '두번째 hello함수입니다.';
    }
?>

(로그인을 하시면 위의 코드를 실행 할 수 있습니다.
oAuth인증 방식으로 빠르고 간편하게 로그인할 수 있습니다.
네이버, 구글, 카카오, 라인의 ID로 빠르게 로그인 하세요.)

로그인 하여 위의 코드를 클릭 한번에 실행하려면 여기를 클릭해 주세용.

위 코드를 실행하면 오류가 발생하지 않습니다. ^^
첫번째 hello함수는 hello그룹에 속하며, 두번째 hello함수는 hello2그룹에 속한다고 보시면 됩니다.

그럼 네임스페이스를 사용한 코드의 함수를 호출하는 방법에 대해 알아볼까요?

네임스페이스를 사용하여 함수 호출 방법

\네임스페이스명\함수명()

그럼 예제를 통해서 봅시다.

<?php
    namespace hello;

    function hello()
    {
        return '첫번째 hello함수입니다.';
    }

    namespace hello2;

    function hello()
    {
        return '두번째 hello함수입니다.';
    }

    echo \hello\hello();
    echo '<br>';
    echo \hello2\hello();
?>

(로그인을 하시면 위의 코드를 실행 할 수 있습니다.
oAuth인증 방식으로 빠르고 간편하게 로그인할 수 있습니다.
네이버, 구글, 카카오, 라인의 ID로 빠르게 로그인 하세요.)

로그인 하여 위의 코드를 클릭 한번에 실행하려면 여기를 클릭해 주세용.

이렇게 네임스페이스에 대해 알아봤습니다. 네임스페이스를 사용하면 같은 함수처럼 같은 클래스명을 선언할 수도 있습니다.
똑같습니다.

네임스페이스를 사용하여 인스턴스 생성 방법

$변수명 = new \네임스페이스명\클래스명
<?php
    namespace hello;

    class hello
    {
        function hello()
        {
            return '첫번째 hello 클래스입니다.';
        }
    }


    namespace hello2;

    class hello
    {
        function hello()
        {
            return '두번째 hello 클래스입니다.';
        }
    }


    $helloFirst = new \hello\hello;
    echo $helloFirst->hello();
    echo '<br>';
    $helloSecond = new \hello2\hello;
    echo $helloSecond->hello();
?>

(로그인을 하시면 위의 코드를 실행 할 수 있습니다.
oAuth인증 방식으로 빠르고 간편하게 로그인할 수 있습니다.
네이버, 구글, 카카오, 라인의 ID로 빠르게 로그인 하세요.)

로그인 하여 위의 코드를 클릭 한번에 실행하려면 여기를 클릭해 주세용.

위 코드의 결과

네임스페이스 한번 쓰려면 너무 길죠?
이를 자신이 원하는 문구로 짧게 사용할 수 있어요.
다음 시간에 알아봐요.

강좌로 돌아가기