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

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《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年前 评论

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