Heim > php教程 > php手册 > Hauptteil

PHP别名引用错误:“The use statement with non

WBOY
Freigeben: 2016-06-06 19:51:01
Original
1283 Leute haben es durchsucht

别名概述 PHP5.3+支持命名空间:namespace,命名空间的一个重要功能是可以使用别名(alias)来引用一个符合规则的名字。 命名空间支持3中形式的别名引用(或称之为引入)方式:类(class)别名,接口(interface)别名和命名空间(namespace)名字别名。 PHP

别名概述

PHP5.3+支持命名空间:namespace,命名空间的一个重要功能是可以使用别名(alias)来引用一个符合规则的名字。

命名空间支持3中形式的别名引用(或称之为引入)方式:类(class)别名,接口(interface)别名和命名空间(namespace)名字别名。

PHP5.6+还支持函数别名和常量别名。

(注:php.net 网站上关于别名这一段的中文描述有歧义和错误,更正如上)

具体语法格式

use xxx\xxx\xxx as xx;

所以use语句实际上是一种别名引用,而不是通常的import。那么use后面出现的名称就得是符合规则的别名。

错误及原因

现在再来看类似文章标题中的错误信息:

“The use statement with non-compound name … has no effect”

我们就能明白这个错误信息指的是use语句中出现的名称不是复合名称,不符合规则,所以“没有用”。

检查你的语句是不是直接在use后面跟上了类或接口的名字,比如

use News;

修改为:

use YourNameSpace\News; (这个和use YourNameSpace\News as News是一样的)

如果是Yii2框架,那么通常数据模型的别名引用类似如下:

use app\models\News;

如果是Laravel,由于在Composer中已默认添加了app\models路径,将自动完成别名引用。

所以只要确保类名正确,无需额外的use语句。

使用框架时,由于最新的框架都遵循PSR-4自动加载命名规范,

所以小心"下划线"( _ )在文件、路径名称中的使用,会被自动分解为多个路径来进行匹配。


by iefreer

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage