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 了?搞不明白了

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 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){} 代表我引用外部的变量到函数内。
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年前 评论