try {} catch(){}中的(异常$ e)和(\异常$ e)之间的差异

时间:2017-07-02 04:28:15

标签: php laravel

(Exception $e)(\Exception $e)try{}catch(){}之间的区别是什么? '反斜杠的影响是什么?在Exception之前?

2 个答案:

答案 0 :(得分:2)

在类名前面使用\,这意味着您从全局空间调用class。如果您不使用\,它将使用您的代码在相同的命名空间中调用该类。但是,如果您不在代码中使用namespace,它将从全局空间调用类。

示例:

<?php
namespace Module\Example;

class Test
{
    try{

    } catch(Exception $e) { // will look up Module\Example\Exception

    }

    try{

    } catch(\Exception $e) { // will look up Exception from global space

    }
}

您可以查看此文档以获取更多详细信息。 http://php.net/manual/en/language.namespaces.global.php

答案 1 :(得分:0)

像这样\Exception的反斜杠代表全局命名空间。它指定从全局命名空间调用类中的函数,并且它不会在同一命名空间中覆盖具有相同名称的函数。

根据php.net -

  

没有任何名称空间定义,所有类和函数定义都放在全局空间中 - 就像在支持名称空间之前在PHP中一样。使用\前缀名称将指定即使在命名空间的上下文中也需要全局空间中的名称。