什么是“使用功能”表达式?

时间:2018-08-22 15:33:49

标签: php

我看到了这段代码,但我不明白为什么要使用 use function array_map表达式?

<?php

namespace Project\MyProject;

use function array_map;

class MyProjectClass 
{
    protected $arr = [];
    public function __construct(array $arr)
    {
        $this->arr = array_map('trim', $arr);
    }
}

1 个答案:

答案 0 :(得分:1)

how to call global functions classes from namespace PHP中所述:

use function array_map;

将全局函数别名化为本地名称空间。

  • 通常不需要。
  • PHP还是会在全局范围内查找函数。
  • 仅当您要在当前名称空间中重新声明全局函数时才有意义。
    • 这是一种罕见的情况。
    • 但是如果您有(称为“猴子修补”),那么您也不想用use function破坏它。

引入use function的真正原因是:

  • 对于实际的别名/重命名功能:

    • use function App\Helpers\my_mappymcmapface as array_map;
    • use function \trim as chomp;
  • 这也是因为PHP编码人员以前一直在用\trim\strpos乱扔代码库。

    • 那是那些不必要的微性能优化之一。

是的,在这种情况下,它毫无意义。