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};
有效吗?如果是,哪里可以进一步研究这个?
答案 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};