어플리케이션을 만들다 보면 하나의 파일로만 만들 수 는 없습니다.
기능도 다르고, 여러사람들 간의 코웍을 할 수도 있으니...
그래서 include라는 기능이 있습니다.
먼저 blog.php라는 파일을 만들었습니다.
1 2 3 4 5 6 7 8 | <html> <body> <?php include 'tistory.php'; echo "My blog addr is ".blog_addr(); ?> </body> </html> | cs |
이 파일에서는 tistory.php 라는 파일을 include하고 있습니다.
그리고 Line 5에 보면 blog_addr() 이라는 함수를 호출 하는데 blog.php에는 없습니다.
이 함수는 include 한 tistory.php에 있습니다.
tistory.php
1 2 3 4 5 6 7 8 9 | <html> <body> <?php function blog_addr(){ return "http://answerofgod.tistory.com"; } ?> </body> </html> | cs |
이 곳에서 tistory blog의 주소값을 리턴해 줍니다.
결과는
주소값이 정상적으로 리턴되는 것을 볼 수 있습니다.
그렇다면 제 다른 블로그인 bolgger의 주소도 리턴되도록 파일을 추가해 보겠습니다.
blogger.php
1 2 3 4 5 6 7 8 9 | <html> <body> <?php function blog_addr(){ return "answerofgod.blogspot.kr"; } ?> </body> </html> | cs |
그런데 호출하는 함수가 똑같습니다.
이럴 경우 어떻게 해야 할까요?
blog.php를 이렇게 호출하면 어떻게 될까요?
1 2 3 4 5 6 7 8 9 10 | <html> <body> <?php include_once 'tistory.php'; include_once 'blogger.php'; echo "My blog addr is ".blog_addr(); echo "My blog addr is ".blog_addr(); ?> </body> </html> | cs |
결과는 오류가 발생하게 됩니다.
include된 두 파일 모두 같은 함수명을 가지고 있어 어느 파일의 함수를 호출해야 할지를 모릅니다.
이럴 경우 namespace를 사용합니다.
tistory.php
1 2 3 4 5 6 | <?php namespace answerofgod\daum; function blog_addr(){ return "http://answerofgod.tistory.com"; } ?> | cs |
blogger.php
1 2 3 4 5 6 | <?php namespace answerofgod\google; function blog_addr(){ return "http://answerofgod.blogspot.kr"; } ?> | cs |
각각 Line 2에 namespace를 추가하였습니다.
이게 각 함수를 구분하는 기준이 됩니다.
그리고 blog.php
1 2 3 4 5 6 7 8 9 10 11 | <html> <body> <?php include 'tistory.php'; include 'blogger.php'; echo "My blog addr is ".answerofgod\daum\blog_addr(); echo '<br>'; echo "My blog addr is ".answerofgod\google\blog_addr(); ?> </body> </html> | cs |
Line 6, 8에 함수 호출하는 부분에 namespace를 추가했습니다.
결과는
모두 정상적으로 출력이 되었습니다.
그리고 같은 파일 안의 같은 함수가 있을 경우에도 namespace를 쓸 수 있습니다.
1 2 3 4 5 6 7 8 9 10 | <?php namespace answerofgod\daum; function blog_addr(){ return "http://answerofgod.tistory.com"; } namespace answerofgod\google; function blog_addr(){ return "http://answerofgod.blogspot.kr"; } ?> | cs |
이렇게 하셔도 결과는 같습니다.
'Study > php' 카테고리의 다른 글
PHP 기초 ] 파일제어 2 (0) | 2015.09.30 |
---|---|
PHP 기초] 간단한 파일제어 (0) | 2015.09.25 |
PHP 기초] 함수 (0) | 2015.09.24 |
PHP 기초 ] 배열 (1) | 2015.09.24 |
PHP 기초] 반복문 (0) | 2015.09.23 |