为什么 class 中有多个 use 语句

Why have multiple use statements in class

我很好奇 use 语句在 PHP 中是如何工作的。我正在看教程,代码如下所示:

<?php

use Illuminate\Foundation\Testing\DatabaseTransactions;

class ConversationTest extends TestCase {

    use DatabaseTransactions;

}

为什么 DatabaseTransactions 项必须申报两次?

use DatabaseTransactions;语句是指使用Traits.

Traits 是一种代码重用机制。

php.net 手册中的示例:

<?php
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();
?>