我使用camel case,它的所有变量名,函数等的首字母都是小写的。但是班级名称是大写的。我应该使用:
class Foo
{
function foo()
{
}
}
或:
class Foo
{
function Foo()
{
}
}
哪个更好的约定?我很困惑。
答案 0 :(得分:11)
命名构造函数是PHP 4约定。是的,当你这样做时,你应该匹配班级的情况。
但是这些天PHP 4是个新闻。 PHP 5几年来一直是事实上的版本。 PHP 5使用常量构造函数名称__construct。无论班级名称如何,总会如此。
class a
{
public function __construct()
{}
}
class b
{
public function __construct()
{}
}
答案 1 :(得分:6)
老实说,不是。
你应该使用__construct()
当然,除非你被链接到相当古老的PHP4,否则你就完全匹配了这个类的名字。
答案 2 :(得分:5)
构造函数名称应与类名匹配,因此Foo
。这是惯例,不仅在PHP中,而且在它复制的语言中:Java,C#和C ++。在这些语言中,标识符区分大小写,因此名称必须相同。
答案 3 :(得分:3)
如果可能的话,我会选择第二个例子。也就是说,构造函数的大小写应该与类名匹配,因为构造函数正在返回类的实例,因此它的名称应该相同(为了保持一致性)。
这可能是个人约定,但如果我有一个类“FooBarBaz”,我希望构造函数名为“FooBarBaz”,而不是“fOOBARBAZ”,“fooBarBaz”,“foobarbaz”或其他任何东西。
但是,它依赖于语言:
答案 4 :(得分:2)
虽然这是许多语言的惯例,例如Java或C#,但并非如此。
大写取决于开发环境中的语言或类库约定。
那么,我们在谈论什么语言?
好的,所以 PHP 。 PHP中的约定是大写类名。
Java 还使用大写类名称,但类中的方法是 camelCased 。
C#当然,使用大写类名称会混淆一些事情,而方法则相同。
答案 5 :(得分:1)
许多语言都没有给你一个选择。这包括C ++,Java和C#。构造函数的名称是类的名称,因此当且仅当您将类名称大写时,才将大写构造函数名称大写。 (如果不这样做,那么编译器甚至都不会将它识别为构造函数。)
对于其他语言,请使用与该类其余方法相同的命名约定。就是这么简单。