2013-09-21 128 views
0

我想弄清楚如何在php中使用命名空间。我一直在阅读如何使用它,出于某种原因我无法使用它。我有两个文件,一个是我已经存储在Applications/Database/Classes文件名是DatabaseConnection.php并在根目录下的另一种叫DB.phpDatabaseConnection.php文件我有以下代码中:正确使用php命名空间

<?php 
    function hello() 
    { 
     echo "hello"; 
    } 
?> 

这是db.php中文件的内容:

<?php 
namespace Applications\Database\Classes; 
ini_set('display_errors', true); 
hello(); 
?> 

也许我完全丢失如何正确地使用它,但如果我设置一个命名空间是一样使用includerequire?我可能完全误解如何使用它。我是OOP的新手,在我开始尝试学习OOP之前,从来没有听说过命名空间。有人能指出我做错了什么吗?

+0

我知道一些Trekkies ...他们使用空间名称几乎和你一样;) – djot

+0

我从来没有进入星际迷航 – Yamaha32088

+2

名称空间不会自动需要文件。你可以使用[自动加载器](http://php.net/manual/en/language.oop5.autoload.php) – Rob

回答

1

名称空间是用于组织你的代码,这样你可以将组件并与可读性帮助。例如,如果我有一个类Pittbull和另一Dashund我可以将它们放入一个命名空间,像这样的组织:

Animals.Dogs.Pittbull 
Animals.Dogs.Dashund 

这也与像下面潜在的冲突有助于:

Animals.Dogs.Misc 
Animals.Cats.Misc 

Misc类在此实例中存在两次,但不是使用哪个冲突,您可以对这两个类使用相同的类名(并且在它们内部具有不同的属性和方法),并且不存在您想要哪一个的冲突使用。

require关键字是一个完全不同的概念,用于将实际文件加载到执行脚本中。