use Illuminate\Notifications\Notifiable; 和 use Notifiable; 有什么区别 ?

use Illuminate\Notifications\Notifiable;
class xx 
{
use Notifiable;
...
}

Notifiable 是个trait, 在类里面 use, 解决单继承的问题, 那么类外面的 use Illuminate\Notifications\Notifiable; 又是什么意思呢? 引入命名空间?
类外面也没有写 use Illuminate\Notifications\Notifiable as Notifiable, 里面也就能直接 use Notifiabel 了? 搞不明白了

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
朕略显ぼうっと萌
最佳答案

我觉得你是对 这两个use使用理解上有点问题,
use Notifiable 是引用 trait 的一种方式 这个这个use和命名空间的use是不相同的
抛开 trait 来说, 在你实例化类的时候是下面这样的

<?php

use App\Models\User;

...

$user = new User();

这样的化 我use的时候是指定命名空间 new 是具体实例话那个类。
替换成 trait来说不就是

<?php
use Illuminate\Notifications\Notifiable;

class User 
{
    use Notifiable;
    ...
}

use 在不同的地方 代表着不同的意思 .

  • 头部 use Illuminate\Notifications\Notifiable; 代表我引入的Notifiable是在 Illuminate\Notifications这个命名空间下的类。
  • 类里面use Notifiable; 代表我引入Notifiable这个trait
  • 匿名函数function()user($user){}代表我引用外部的变量到函数内。
5年前 评论
讨论数量: 2
jltxwesley

use Illuminate\Notifications\Notifiable; 就是导入这个 trait,所以你才可以在不同命名空间下的类中使用它 use Notifiable;

use Illuminate\Notifications\Notifiable; 是等同于 use Illuminate\Notifications\Notifiable as Notifiable 的,两者一样。

5年前 评论
朕略显ぼうっと萌

我觉得你是对 这两个use使用理解上有点问题,
use Notifiable 是引用 trait 的一种方式 这个这个use和命名空间的use是不相同的
抛开 trait 来说, 在你实例化类的时候是下面这样的

<?php

use App\Models\User;

...

$user = new User();

这样的化 我use的时候是指定命名空间 new 是具体实例话那个类。
替换成 trait来说不就是

<?php
use Illuminate\Notifications\Notifiable;

class User 
{
    use Notifiable;
    ...
}

use 在不同的地方 代表着不同的意思 .

  • 头部 use Illuminate\Notifications\Notifiable; 代表我引入的Notifiable是在 Illuminate\Notifications这个命名空间下的类。
  • 类里面use Notifiable; 代表我引入Notifiable这个trait
  • 匿名函数function()user($user){}代表我引用外部的变量到函数内。
5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!