개발 스크랩 메모/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를 읽기 위해 적합한 자동 다운로드 프로그램을 읽을 수 있습니다.