我应该在php数组中使用连字符,下划线或camelCase吗?

时间:2010-02-23 14:03:15

标签: php arrays

我刚开始使用php数组(和一般的php)

我有以下代码:

languages.php:

<?php
$lang = array(
    "tagline" => "I build websites...",
    "get-in-touch" => "Get in Touch!",
    "about-h2" => "About me"
    "about-hp" => "Hi! My name is..."
);
?>

的index.php:

<div id="about">
   <h2><?php echo $lang['about-h2']; ?></h2>
   <p><?php echo $lang['about-p']; ?></p>
</div>

我正在使用大肆宣传(about-h2),但我不确定这是否会在将来引起我的问​​题。有什么建议吗?

8 个答案:

答案 0 :(得分:19)

在驼峰和下划线之间,这是个人品味。我建议使用你用于常规变量名称的任何约定,所以你不会想到“这是一个下划线或骆驼案例......?”并且你的继任者不会想到他们可能会因为混合风格而折磨你的所有方式。选择一个并全面坚持下去。

这就是为什么连字符是一个非常糟糕的主意 - 也很少,你会想要使用类似extract的东西,它接受一个数组并将其成员转换为常规变量:

$array = array("hello" => "hi", "what-up" => "yup");
extract($array);
echo $hello; // hi
echo $what-up; // FAIL

就个人而言,我更喜欢骆驼案,因为它的字符较少。

答案 1 :(得分:3)

我真的很惊讶没有人说过这个。我发现当我们谈论数组键而不是变量时,每个人都提出了变量命名标准实际上非常糟糕。

从功能上讲,在数组键中使用连字符,下划线,camelCase不会有任何问题。如果需要,您甚至可以使用空格,换行或空字节!它不会影响代码的功能^。

数组键可以是intstring。当您使用string作为密钥时,它会被视为代码中的任何其他string

话虽如此,如果您正在构建标准化数据结构,最好使用与变量名称相同的标准。


^除非您计划将类型转换为(stdClass)或使用extract(),否则您应该使用转换为有效变量名称的键,以避免使用{{1}而不是->{"My Key Is"}。在这种情况下,请确保您的密钥符合->myKeyIs

答案 2 :(得分:1)

你可以使用最舒服的东西,但是,我不建议使用超人。

常见的方法是使用camelCase,这就是框架中许多标准所要求的。

我建议使用它。

 $thisIsMyVariable

 $this-is-not-how-i-would-do-it

此外,您可以发现使用连字符可以使您的变量看起来像减去。所以你必须使用

 $object->{”Property-Here”}

它只是不好看。 :(

编辑,对不起,我刚看到你在Array中询问了问题,而不是变量。无论哪种方式,我的答案仍然适用。

答案 3 :(得分:1)

我会将所有内容附加到一个单词中。如果没有全部附加,我会缩短它或使用_

从长远来看,无论你决定选择什么,只要一致

答案 4 :(得分:0)

Google中用于“PHP代码标准”的first result说:

  • 使用'_'作为单词分隔符。
  • 不要使用' - '作为单词分隔符

但是,如果您还没有可以遵循的标准,那么您几乎可以做任何您想做的事情。只要保持一致。

答案 5 :(得分:0)

查看代码时:如果您从一开始就使用gettext http://de2.php.net/manual/en/intro.gettext.php这样的国际化工作,甚至可以避免使用数组和密钥。

这最终将导致

<h2><?php _("About me..."); ?></h2>

<?php 
$foo = _("About me..."); 
 ...
?>

答案 6 :(得分:0)

许多人,包括Zend,都告诉程序员使用camel case,但我个人使用下划线作为变量名,数组键,类名和函数名的单词分隔符。此外,所有小写,除了类名,我使用大写字母。

例如:

class News
{
    private $title;
    private $summary;
    private $content;

    function get_title()
    {
        return $this->title;
    }
}
$news = new News;

答案 7 :(得分:0)

我强烈建议使用下划线来分隔变量中的单词,尤其是在语言区分大小写的情况下。 对于不区分大小写的语言,如 vb、camelCase 或 CamelCase 是最好的。