启动对象时类前类型的反斜杠

时间:2016-05-23 00:12:52

标签: php class oop

我看到很多代码在新对象启动时在类类型之前包含反斜杠:

db = new \PDO($dsn, $username, $password);

问题:

上一代码中反斜杠的用途是什么?

我的推论:

我经常在我的代码中使用db = new PDO(...)而没有反斜杠与MySQL建立连接并且它对我来说很好,尽管我经常在其他用户的代码中看到反斜杠。乍一看似乎是在指定一个类的路径,虽然这对我来说似乎很奇怪,因为我通常在代码中使用正斜杠/,也因为我从来没有读过或看过它启动任何类类型的对象时的要求。

考虑到代码对我有用而没有反斜杠,我对\的目的感到困惑。

我试图在上面找到文档但没有成功(http://php.net/manual/en/language.oop5.php)虽然我确定它在那里。

2 个答案:

答案 0 :(得分:-1)

反斜杠有时在框架控制器或模型(如ZF2,Laravel)中使用,以指定您希望使用PHP本机类而不是Framework类

答案 1 :(得分:-1)

据我所知,它与你的文件结构中的类声明的位置有关。如果您在自定义类的文件夹中工作,例如专用于留言簿的文件夹,并且您在留言簿文件夹中,您可能希望访问您经常使用的课程,在许多情况下是数据库像PDO或MySQLi这样的处理程序。这些将存储在根目录中,因此您需要告诉PHP在哪里查找文件。

所以,让我们说你的文件结构类似于:

根    - 留言簿    - 论坛    - 存储物品

您正在处理Store items目录,但想要访问根目录中的PDO处理程序,因此您可以通过声明它来访问它:   $ conn = new \ PDO;

同样地,让我们说你在论坛部分想要从商店中提取信息,你只需像这样访问它:    $ item = new \ Store \ StoreItem;

至少......这就是我的想法!如果您正在使用本地声明的所有课程,那么您就不必担心目录结构了。