类/内部类之外的Use语句的区别

时间:2015-05-13 20:47:44

标签: php namespaces

我现在用PHP工作了很长时间,昨天晚上我觉得有些东西我不知道区别,也许差别只是代码格式或类似的东西,但我不确定,所以这里有两种情况,我想知道差异,如果有一个:

案例1:

<?php

    namespace Foo\Bar;

    use Foo\Bar\Baz;

    class MyClass {
        public function __construct()
        {
             $instance = new Baz();
        }
    }

?>

案例2:

<?php

    namespace Foo\Bar;

    class MyClass {
        public function __construct()
        {
             $instance = new \Foo\Bar\Baz();
        }
    }

?>

2 个答案:

答案 0 :(得分:3)

通过使用 use 语句,我们可以从另一个命名空间中引入一个类,您也可以通过其他名称引用它。像这样的东西

use Foo\Bar\Baz as Baz2;

在我看来,我认为没有任何性能问题,只是个人偏好。

为什么我开始使用使用声明?

我最近正在研究项目,当我的命名空间变得很长时,每当我需要实例化该类时,每次输入整个路径都会很麻烦。

答案 1 :(得分:1)

实际上,您也可能会更改为其他实现。例如,您从\Foo\Bar开始,但稍后会注意到\Baz\Bar是一种性能更高的实现。在这种情况下,总是使用use是有意义的,因为那时你只需要在一个地方进行更改(假设这些类实现了相同的接口)。

原始回答:

在这些情况下,没有功能差异(除了所需的数字或字符外)。

我不知道他们的表现是否有所不同,但我对此表示怀疑。