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);
}
}
解决方案
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
。- 那是那些毫无根据的微观性能优化之一。
所以是的,对于这种情况,这是毫无意义的装饰。