PHP 튜토리얼

PHP 홈 PHP 소개 PHP 설치 PHP 구문 PHP 주석 PHP 변수 PHP 에코 / 인쇄 PHP 데이터 유형 PHP 문자열 PHP 숫자 PHP 수학 PHP 상수 PHP 연산자 PHP If...Else...Elseif PHP 스위치 PHP 루프 PHP 함수 PHP 배열 PHP 슈퍼글로벌 PHP 정규식

PHP 양식

PHP 양식 처리 PHP 양식 유효성 검사 PHP 양식 필요 PHP 양식 URL/이메일 PHP 양식 완성

PHP 고급

PHP 날짜 및 시간 PHP 포함 PHP 파일 처리 PHP 파일 열기/읽기 PHP 파일 생성/쓰기 PHP 파일 업로드 PHP 쿠키 PHP 세션 PHP 필터 PHP 필터 고급 PHP 콜백 함수 PHP JSON PHP 예외

PHP OOP

PHP OOP란? PHP 클래스/객체 PHP 생성자 PHP 소멸자 PHP 액세스 수정자 PHP 상속 PHP 상수 PHP 추상 클래스 PHP 인터페이스 PHP 특성 PHP 정적 메서드 PHP 정적 속성 PHP 네임스페이스 PHP 반복 가능

MySQL 데이터베이스

MySQL 데이터베이스 MySQL 연결 MySQL 생성 DB MySQL 테이블 생성 MySQL 삽입 데이터 MySQL 마지막 ID 가져오기 MySQL은 다중 삽입 MySQL 준비 MySQL 선택 데이터 MySQL 어디 MySQL 주문 기준 MySQL 데이터 삭제 MySQL 업데이트 데이터 MySQL 제한 데이터

PHP XML

PHP XML 파서 PHP SimpleXML 파서 PHP SimpleXML - 가져오기 PHP XML 국외 거주자 PHP XML DOM

PHP - AJAX

AJAX 소개 AJAX PHP AJAX 데이터베이스 AJAX XML AJAX 라이브 검색 AJAX 투표

PHP 예제

PHP 예제 PHP 컴파일러 PHP 퀴즈 PHP 연습 PHP 인증서

PHP 참조

PHP 개요 PHP 배열 PHP 캘린더 PHP 날짜 PHP 디렉토리 PHP 오류 PHP 예외 PHP 파일 시스템 PHP 필터 PHP FTP PHP JSON PHP 키워드 PHP 라이브러리 XML PHP 메일 PHP 수학 PHP 기타 PHP MySQLi PHP 네트워크 PHP 출력 제어 PHP 정규식 PHP SimpleXML PHP 스트림 PHP 문자열 PHP 변수 처리 PHP XML 파서 PHP 우편번호 PHP 시간대

PHP 네임스페이스


PHP 네임스페이스

네임스페이스는 두 가지 다른 문제를 해결하는 한정자입니다.

  1. 작업을 수행하기 위해 함께 작동하는 클래스를 그룹화하여 더 나은 조직을 허용합니다.
  2. 둘 이상의 클래스에 동일한 이름을 사용할 수 있습니다.

예를 들어 Table, Row 및 Cell과 같은 HTML 테이블을 설명하는 클래스 집합이 있을 수 있으며 Table, Chair 및 Bed와 같은 가구를 설명하는 또 다른 클래스 집합이 있을 수 있습니다. 네임스페이스를 사용하여 클래스를 두 개의 다른 그룹으로 구성하는 동시에 두 개의 클래스 Table과 Table이 섞이는 것을 방지할 수 있습니다.


네임스페이스 선언

namespace네임스페이스는 다음 키워드 를 사용하여 파일 시작 부분에 선언됩니다 .

통사론

Html이라는 네임스페이스를 선언합니다.

namespace Html;

참고: 선언 namespace은 PHP 파일의 첫 번째 항목이어야 합니다. 다음 코드는 유효하지 않습니다.

<?php
echo "Hello World!";
namespace Html;
...
?>

이 파일에 선언된 상수, 클래스 및 함수는 Html 네임스페이스 에 속합니다 .

예시

Html 네임스페이스에 Table 클래스를 만듭니다.

<?php
namespace Html;
class Table {
  public $title = "";
  public $numRows = 0;
  public function message() {
    echo "<p>Table '{$this->title}' has {$this->numRows} rows.</p>";
  }
}
$table = new Table();
$table->title = "My table";
$table->numRows = 5;
?>

<!DOCTYPE html>
<html>
<body>

<?php
$table->message();
?>

</body>
</html>

추가 구성을 위해 중첩된 네임스페이스를 가질 수 있습니다.

통사론

Code라는 네임스페이스 안에 Html이라는 네임스페이스를 선언합니다.

namespace Code\Html;

네임스페이스 사용

선언 뒤에 오는 모든 코드 namespace는 네임스페이스 내에서 작동하므로 네임스페이스에 속하는 클래스는 한정자 없이 인스턴스화할 수 있습니다. 네임스페이스 외부에서 클래스에 액세스하려면 클래스에 네임스페이스가 연결되어 있어야 합니다.

예시

Html 네임스페이스의 클래스 사용:

$table = new Html\Table()
$row = new Html\Row();

동일한 네임스페이스의 많은 클래스가 동시에 사용되는 경우 namespace키워드를 사용하는 것이 더 쉽습니다.

예시

Html\qualifier 없이 Html 네임스페이스의 클래스를 사용합니다.

namespace Html;
$table = new Table();
$row = new Row();

네임스페이스 별칭

작성하기 쉽도록 네임스페이스나 클래스에 별칭을 제공하는 것이 유용할 수 있습니다. 이것은 use키워드로 수행됩니다.

예시

네임스페이스에 별칭을 지정합니다.

use Html as H;
$table = new H\Table();

예시

클래스에 별칭을 지정합니다.

use Html\Table as T;
$table = new T();