try{}catch(){} 中的 (Exception $e) 和 (\Exception $e) 之间的区别



(Exception $e)(Exception $e)有什么区别try{}catch(){}
Exception之前的"反斜杠\"有什么影响?

在类名前面使用,表示您从全局空间调用class。如果不使用,它将调用与您的代码位于同一命名空间中的类。但是如果你在代码中不使用namespace,它将从全局空间调用类。

例:

<?php
namespace ModuleExample;
class Test
{
try{
} catch(Exception $e) { // will look up ModuleExampleException
}
try{
} catch(Exception $e) { // will look up Exception from global space
}
}

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

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

根据php.net-

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

最新更新