【发布时间】:2012-12-27 14:26:13
【问题描述】:
可能重复:
What are namespaces?
据我了解,命名空间允许您在脚本的不同命名空间内拥有同名的函数/变量。
namespace productions\active;
class Slayer
{
function Username ()
{
$Username = "Test";
return $Username;
}
}
namespace productions\experimental;
class Slayer
{
function Username()
{
$Username = "Experiemental";
return $Username;
}
}
但这提供了什么功能?
此外,如果我的类中有公共函数并且“存在”在命名空间中,会发生什么情况?
【问题讨论】:
-
命名空间应该是一种更方便的替代方法,它可以使用 Under_Score_Prefixes 手动避免 类名冲突。另见http://en.wikipedia.org/wiki/Namespace_(computer_science)
-
你有没有遇到过两个同名的类/函数?说两个
File类,一个来自库,一个来自您自己的代码?命名空间解决了这个问题。 -
我个人认为使用命名空间没有任何实用性,如果你需要做两个独立的事情,那么你会创建两个独立的函数,而不是创建命名空间以具有相同的函数名称。
-
那么您可能似乎对实际代码几乎没有经验。包含外部库是非常典型的。如果这些库中的类和函数的命名有些传统,那么名称冲突确实并不少见。
File通常是一个合理的类名,有两个库使用它也就不足为奇了。这不仅仅是关于你的代码。 -
一个大项目有不止一个程序员。所以每个程序员都必须独立编写代码,这些代码必须与其他程序员的代码一起工作。而且它恰好有相同的类/函数名称 -> 错误。
标签: php namespaces