php源代码中的三个大括号


Three curly brackets together in php source code

我刚刚从PHP.net下载了完整的PHP源代码(PHP 5.4.0[tar.bz2])。它们通常使用三个大括号,如下所示(以下代码片段从ext/cype/ctype.c中提取)

/* {{{ proto bool ctype_digit(mixed c)
   Checks for numeric character(s) */
 static PHP_FUNCTION(ctype_digit)
 {
  CTYPE(isdigit);
 }
/* }}} */

有人知道他们为什么把这三个花括号放在一起吗?

它们是vim折叠标记,可以很容易地折叠和展开vim中三个大括号之间的文本,在所示的示例中,它们在以下两个之间交替:

...
/* {{{ proto bool ctype_digit(mixed c)
   Checks for numeric character(s) */
static PHP_FUNCTION(ctype_digit)
{
    CTYPE(isdigit);
}
/* }}} */
...

只有

...
/* {{{ proto bool ctype_digit(mixed c)
...

如果你在文件的末尾找到它们,你经常会发现一个像这样的块:

/*
 * Local variables:
 * tab-width: 4
 * c-basic-offset: 4
 * End:
 * vim600: sw=4 ts=4 fdm=marker
 * vim<600: sw=4 ts=4
 */

这是另一个更明显的指标,表明这些评论与vim有关。