美文网首页我爱编程
PHP use关键字的N种写法

PHP use关键字的N种写法

作者: 鹅鹅鹅的天歌 | 来源:发表于2018-04-16 16:54 被阅读0次

首先这个use和闭包没有关系,只是说在namespace下面引用类。
最近看了一下larevel框架,作为一个Yii的忠实粉丝,真的真的不想换,但没办法,还是要学习下最好语言的最好框架。

铺面而来的文件夹结构好多,说好的大道至简呢。

后看到很多class内部写了很多use,表示十分的费解。写里面和外面不知道有啥区别。

写在外面很容易理解,会直接遵循psr的autoload规范,写里面不清楚有啥区别。所以测试记录一下。

追着源码一路看下去发现,use类的声明都是通过Trait关键字声明的。官方给出的解释是

Trait 是为类似 PHP 的单继承语言而准备的一种代码复用机制。Trait 为了减少单继承语言的限制,使开发人员能够自由地在不同层次结构内独立的类中复用 method。Trait 和 Class 组合的语义定义了一种减少复杂性的方式,避免传统多继承和 Mixin 类相关典型问题。

通俗一点理解,就是更加灵活的去继承复用了。

class Base {
    public function sayHello() {
        echo 'Hello ';
    }
}

trait SayWorld {
    public function sayHello() {
        parent::sayHello();
        echo 'World!';
    }
}

class MyHelloWorld extends Base {
    use SayWorld;
}

$o = new MyHelloWorld();
$o->sayHello();

上面的代码输出hello world!

多类继承冲突的解决

trait A {
    public function smallTalk() {
        echo 'a';
    }
    public function bigTalk() {
        echo 'A';
    }
}

trait B {
    public function smallTalk() {
        echo 'b';
    }
    public function bigTalk() {
        echo 'B';
    }
}

class Talker {
    use A, B {
        B::smallTalk insteadof A;
        A::bigTalk insteadof B;
    }
}

class Aliased_Talker {
    use A, B {
        B::smallTalk insteadof A;
        A::bigTalk insteadof B;
        B::bigTalk as talk;
    }
}

相关文章

  • PHP use关键字的N种写法

    首先这个use和闭包没有关系,只是说在namespace下面引用类。最近看了一下larevel框架,作为一个Yii...

  • PHP -1- 匿名函数

    php的闭包问题, 主要是通过 use 关键字,但是 为了可以修改 外面的变量,这个时候需要 用到 & 传入变量。...

  • cocopod 安装类库

    安装cocopod的类库提示报错 重装cocopod还是无果, 最后换了一种写法: 原来的写法: use_fram...

  • php 关于elasticsearch 的操作类

    附文件目录 index.php文件代码:

  • 爱的N种写法

    01 去年,我看了医疗纪录片《人间世》第九集——《爱》,讲述了一位年轻妈妈张丽君的故事。 她才26岁,怀孕5个月,...

  • Rust 有问有答之 use 关键字

    use 是什么 use 是 Rust 编程语言的关键字。using 是 编程语言 C# 的关键字。 关键字是预定义...

  • 【中國•書】寿字的N种不同写法

    【中國•書】寿字的N种不同写法

  • v-for iconfont

    留意 use 中的写法 template script

  • PHP的use

    比方说建三个文件。 第一个文件 A.php,里边有两个类,命名空间是 a\b\c; 第三个文件 index.php...

  • 自调函数的N种写法

    首先说什么是自调函数,我的理解就是JavaScript中匿名函数自己调用自己。代码运行到此立即执行,因此也叫立即执...

网友评论

    本文标题:PHP use关键字的N种写法

    本文链接:https://www.haomeiwen.com/subject/oyklhftx.html