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 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
朕略显ぼうっと萌
最佳答案

我觉得你是对 这两个 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){} 代表我引用外部的变量到函数内。
6年前 评论
讨论数量: 2
jltxwesley

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

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

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

我觉得你是对 这两个 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){} 代表我引用外部的变量到函数内。
6年前 评论