PHP - 使用Namespace \ {Foo,Bar}?

时间:2017-09-09 10:06:15

标签: php php-7

PHP什么时候有这个?

use Namespace\{Foo, Bar}

我从the php pleague发现了这种模式:

namespace Acme;

class Foo
{
    /**
     * @type Acme\Bar
     */
    public $bar;

    /**
     * Construct.
     *
     * @param \Acme\Bar $bar
     */
    public function __construct(Bar $bar)
    {
        $this->bar = $bar;
    }
}

class Bar
{
    // ...
}

然后:

<?php

use Acme\{Foo, Bar};

有效吗?如果是,哪里可以进一步研究这个?

2 个答案:

答案 0 :(得分:5)

是的,这是有效的。它是在PHP 7.0中引入的。来自docs

  

从PHP 7.0起,导入的类,函数和常量   来自同一名称空间可以在一次使用中组合在一起   言。

sales30 = iif(dateadd(day,30,p.LaunchDate) >= c.Date, sales, null),
sales60 = iif(dateadd(day,60,p.LaunchDate) >= c.Date, sales, null),
sales90 = iif(dateadd(day,90,p.LaunchDate) >= c.Date, sales, null)

答案 1 :(得分:2)

According to the docs,它在PHP7及更高版本中有效:

  

从PHP 7.0开始,从同一名称空间导入的类,函数和常量可以在一个use语句中组合在一起。

他们提供以下示例:

<?php

// Pre PHP 7 code
use some\namespace\ClassA;
use some\namespace\ClassB;
use some\namespace\ClassC as C;

use function some\namespace\fn_a;
use function some\namespace\fn_b;
use function some\namespace\fn_c;

use const some\namespace\ConstA;
use const some\namespace\ConstB;
use const some\namespace\ConstC;

// PHP 7+ code
use some\namespace\{ClassA, ClassB, ClassC as C};
use function some\namespace\{fn_a, fn_b, fn_c};
use const some\namespace\{ConstA, ConstB, ConstC};