我看到很多代码在新对象启动时在类类型之前包含反斜杠:
db = new \PDO($dsn, $username, $password);
问题:
上一代码中反斜杠的用途是什么?
我的推论:
我经常在我的代码中使用db = new PDO(...)
而没有反斜杠与MySQL建立连接并且它对我来说很好,尽管我经常在其他用户的代码中看到反斜杠。乍一看似乎是在指定一个类的路径,虽然这对我来说似乎很奇怪,因为我通常在代码中使用正斜杠/
,也因为我从来没有读过或看过它启动任何类类型的对象时的要求。
考虑到代码对我有用而没有反斜杠,我对\
的目的感到困惑。
我试图在上面找到文档但没有成功(http://php.net/manual/en/language.oop5.php)虽然我确定它在那里。
答案 0 :(得分:-1)
反斜杠有时在框架控制器或模型(如ZF2,Laravel)中使用,以指定您希望使用PHP本机类而不是Framework类
答案 1 :(得分:-1)
据我所知,它与你的文件结构中的类声明的位置有关。如果您在自定义类的文件夹中工作,例如专用于留言簿的文件夹,并且您在留言簿文件夹中,您可能希望访问您经常使用的课程,在许多情况下是数据库像PDO或MySQLi这样的处理程序。这些将存储在根目录中,因此您需要告诉PHP在哪里查找文件。
所以,让我们说你的文件结构类似于:
根 - 留言簿 - 论坛 - 存储物品
您正在处理Store items目录,但想要访问根目录中的PDO处理程序,因此您可以通过声明它来访问它: $ conn = new \ PDO;
同样地,让我们说你在论坛部分想要从商店中提取信息,你只需像这样访问它: $ item = new \ Store \ StoreItem;
至少......这就是我的想法!如果您正在使用本地声明的所有课程,那么您就不必担心目录结构了。