개발! 딱 깔끔하고 센스있게!

PHP 네임 스페이스와 "사용" 본문

개발 스크랩 메모/PHP

PHP 네임 스페이스와 "사용"

렉사이 2020. 11. 21. 03:20

나는 명칭공간과 use 문구에 문제가 있다.

나 는 세 개 파일: shaperface.php, shape.php, circle.php.

이 동작을 상대 경로를 사용하여 실행하려고 시도하고 있습니다.

모든 종류에 넣었습니다.

namespace Shape; 

나의 동그라미 수업에서 나는 아래의 내용이 있다.

namespace Shape; //use Shape; //use ShapeInterface; include 'Shape.php'; include 'ShapeInterface.php'; class Circle extends Shape implements ShapeInterface{ .... 

만약 내가 include 어구를 사용한다면 잘못되지 않을 것이다.

내가 구문을 사용한다면 나는 얻을 것이다.

Fatal error: Class 'Shape\Shape' not found in /Users/shawn/Documents/work/sites/workspace/shape/Circle.php on line 8

이 문제에 대한 지도를 좀 주실 수 있을까요?

대답

use 운산자는 종류, 인터페이스 또는 기타 명칭으로 별명을 제공한다.

대부분의 use 어구는 단축된 명명공간이나 종류를 가리킨다.

use My\Full\Namespace; 

상당:

use My\Full\Namespace as Namespace; // Namespace\Foo is now shorthand for My\Full\Namespace\Foo 

use 연산자와 인터페이스 이름과 함께 사용하면 다음의 용도가 있습니다:

// after this, "new DifferentName();" would instantiate a My\Full\Classname use My\Full\Classname as DifferentName; // global class - making "new ArrayObject()" and "new \ArrayObject()" equivalent use ArrayObject; 

운산자를 사용하면 자동으로 복사할 수 없습니다.

등록을 통해 자동 카재기 (예를 들어 spl autoload register) 를 사용하여 자동으로 불러올 수 있습니다.

psr-4를 읽기 위해 적합한 자동 다운로드 프로그램을 읽을 수 있습니다.

Comments