命名空间 - use的类名与当前类名相同 ¶
作者:KK
发表日期:2019.3.29
问题 ¶
先看以下代码:
namespace xxx;
use yyy\Apple;
class Apple{
public function test(){
Apple::run();
}
}
定义一个 xxx\Apple 类,又引用一个 yyy\Apple 类,这样搞是不行的,因为Apple::run
都不知道要调用哪个 Apple 类的方法。
解决办法 ¶
用as
关键词给引用的类起一个别名:use yyy\Apple as YyyApple;
这个别名可以自己随便起的,比如:
namespace xxx;
use yyy\Apple as AppleModel;
class Apple{
public function test(){
AppleModel::run();
}
}
用的时候也得以别名来引用哦。
其实遇到两个 use 的类在前缀命名空间不同,后面的类名相同时都可以通过 as 来起不同的别名来区分开为,核心就是避免冲突。