为了账号安全,请及时绑定邮箱和手机立即绑定

Env不能被静态调用?

为什么我不能直接用Env::get('name')这个方法,报错是不能被静态调用。?? 然后我实例化后 就可以用了   $env= new Env();$env->get('name'),为什么啊   我配置有问题?

正在回答

3 回答

要使用Config类,首先需要在你的类文件中引入

use think\facade\Config;

或者(因为系统做了类库别名,其实就是调用think\facade\Config)

use Config;

同样的要使用Env类,必须先引入think\facade\Env或者\Env。

其实你第一个问题引入类名引入有问题,应该是think\facade\Config,facade类是TP5.1新规定,

门面(Facade)为容器中的类提供了一个静态调用接口,相比于传统的静态方法调用, 带来了更好的可测试性和扩展性,你可以为任何的非静态类库定义一个facade类。


0 回复 有任何疑惑可以回复我~

因为ThinkPHP5.1多了一个facadel类

门面(Facade)为容器中的类提供了一个静态调用接口,相比于传统的静态方法调用, 带来了更好的可测试性和扩展性,你可以为任何的非静态类库定义一个facade类。

系统已经为大部分核心类库定义了Facade,所以你可以通过Facade来访问这些系统类,当然也可以为你的应用类库添加静态代理。

只要这个类库继承think\Facade,就可以使用静态方式调用动态类app\common\Test的动态方法,例如上面的代码就可以改成:

// 无需进行实例化 直接以静态方法方式调用hello
echo \app\facade\Test::hello('thinkphp');

结果也会输出 hello,thinkphp。

说的直白一点,Facade功能可以让类无需实例化而直接进行静态方式调用。

参考网址http://www.php.cn/manual/view/32830.html,ThinkPHP5.1核心Facade类库相关


0 回复 有任何疑惑可以回复我~

可以啊


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
快速入门ThinkPHP 5.0--基础篇
  • 参与学习       58653    人
  • 解答问题       495    个

ThinkPHP5已发布多时,想了解ThinkPHP5的新特性吗?老司机带你马上出发~

进入课程

Env不能被静态调用?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信