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){}代表我引用外部的变量到函数内。
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年前 评论

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