트러블 슈팅: "복잡하지 않은 이름의 use 스테이트먼트...효과가 없다.
이 에러를 표시하다use Blog;
맨 위에.
경고:복합 이름이 아닌 'Blog'인 use 문은 다음 항목에 적용되지 않습니다.
Blog
클래스가 입니다.문, 、 록록 、 록고리기기 。
를 「」로 .use Blog\Article;
★★★★★★★★★★★★...
사용할 네임스페이스만 지정하면 되나요?수업을 해야 하나요?
네임스페이스 내에 기능이 있으면 어떻게 해야 하나요? 수 에 붙습니다.\Blog\
★★★★★★★★…
PHP†use
의 C++와using namespace
; 이름 공간을 "가져오기"가 아니라 별칭을 정의할 수 있으므로 이름 공간 한정자를 모두 생략할 수 있습니다.
다음 작업을 수행할 수 있습니다.
use Blog\Article as BA;
하지만 그걸 완전히 없앨 순 없어요
결과, 그결,,use Blog
쓸모없지만 이렇게 써주시면 됩니다.
use \ReallyLongNSName as RLNN;
, '마음껏 하다'를 사용해야 합니다.\
서 파서는 '가 '파서'가 '파서'를 인식하도록 강제합니다.ReallyLongNSName
완전한 자격을 갖췄습니다.은 사실이 Blog\Article
이는 분명히 이미 네임스페이스 체인입니다.
namespried name(네임스페이스 구분자를 포함하는 완전 수식 네임스페이스 이름)의 경우는, 을 참조해 주세요.
Foo\Bar
Import명은 완전 수식되어야 하며 현재 네임스페이스를 기준으로 처리되지 않기 때문에 등 글로벌 이름과는 달리 선행 백슬래시는 불필요하며 권장되지 않습니다.
이 질문은 구글에서 이 오류에 대한 첫 번째 결과로 표시되므로 어떻게 수정했는지 설명하겠습니다.
기본적으로 프레임워크가 있다면 Yii2처럼 다음과 같은 클래스 선언에 익숙해질 것입니다.
use Yii;
use yii\db\WhatEver;
class AwesomeNewClass extends WhatEver
{
}
는 에러입니다.Use Yii
이 클래스에는 네임스페이스가 없기 때문에
이 클래스에는 네임스페이스가 없으므로 글로벌 기호 테이블을 자동으로 상속하므로 이러한 정의와 같은 작업은 필요하지 않습니다. 삭제하기만 하면 됩니다.
PHP의 문장은 긴 네임스페이스를 읽기 쉬운 것으로 에일리어스 붙이기 위한 편리함일 뿐입니다.실제로는 파일이나 그 외의 조작이 포함되어 있지 않기 때문에, 편리함을 제공하는 것 외에 개발에 영향을 주는 것은 없습니다.부터,Blog
편의성을 얻지 못하는 것으로 별명이 붙지 않습니다.네가 이런 걸 할 수 있을 것 같아
use \Blog as B;
그리고 그게 먹힐지도 몰라. (외설적인 것에 의해 실제로 편리함을 잃는다고 주장될 수도 있지만 문제는 그게 아니다.) 왜냐하면 당신은 실제로 그 질문에 대한 애칭을 붙이고 있기 때문이다.Blog
네임스페이스를 다른 무언가로 변환합니다.사용.Blog\Article
이 동작하는 이유는 다음과 같습니다.
// this is the same as use My\Full\NSname as NSname
use My\Full\NSname;
따라서 스니펫은 다음과 같습니다.
use Blog\Article as Article;
다음과 같은 'as' 구문을 사용하지 않을 경우
use \Blog as B;
파일의 네임스페이스를 정의하다
namespace anyname;
use Blog
오류: "The use statement...효과가 없습니다.클래스 정의 전에 특성을 사용하려고 할 때도 표시됩니다.
use My_trait; // should not be here
class My_class{
// use My_trait; should be here instead
}
Blog
이미 사용 가능하기 때문에$article = new Blog\Article();
없이.use Blog;
맨 위에.이것이 에러가 나타내는 것입니다.추가한 행은 효과가 없습니다.해도 소용없다use SingleNonNestedClassThatIsAlreadyPresentInTheCurrentNamespace;
가명을 붙이고 싶지 않다면use SingleNonNestedClassThatIsAlreadyPresentInTheCurrentNamespace as Phew;
.
다른 한편으로 사용하고 싶은 경우$article = new Article();
그 후, use는 "filename"의 약자이며, 당신은 다음과 같이 해야 합니다.use Blog\Article;
에 상당합니다.use Blog\Article as Article;
실제로 당신은 다음과 같은 일을 할 것이다.
use Some\TooLong\Namespace\App\User;
use Some\TooLong\Namespace\App\Ecommerce;
use Some\TooLong\Namespace\App\Auth;
그렇다고 꼭 그렇지는 않다
use Some\TooLong\Namespace\App\Ecommerce\Cart;
use Some\TooLong\Namespace\App\Ecommerce\Checkout;
뿐만 아니라.이것보다 더 좋은 예가 있을 거예요;)
언급URL : https://stackoverflow.com/questions/9317022/troubleshooting-the-use-statement-with-non-compound-name-has-no-effect
'programing' 카테고리의 다른 글
포어치 인덱스는 어떻게 찾죠? (0) | 2022.10.29 |
---|---|
C 모든 케이스 뒤에 있는 스위치 대소문자의 중괄호 (0) | 2022.10.29 |
ENTER 키를 눌러 웹 양식을 제출하지 않도록 하려면 어떻게 해야 합니까? (0) | 2022.10.29 |
테이블 잠금과 관련된 트랜잭션 분리 수준 (0) | 2022.10.29 |
Composer를 설치하기 위해 PHP의 openssl 확장을 활성화하는 방법은 무엇입니까? (0) | 2022.10.29 |