函数声明与自身冲突


function declaration conflicting with itself

当我试图在drupal 7中声明一个简单的函数时,我得到一个奇怪的错误。我在模板文件的顶部声明了一个函数(我知道,这通常是不可能的,但我需要快速得到这些模板,现在没有时间为这些函数开发一个模块。)因此,我在文件的顶部声明以下内容:

1. function templateB_EventRegistrationNode($params = NULL) {
2. /* code */
3. }

然而,当我尝试运行模板时,我得到以下错误,

致命错误:Cannot redeclare templateB_EventRegistrationNode()(先前已在C: ' wamp ' www ' vsi '网站' ' ' vsi_new_template_b ' templates ' node.tpl.php主题:1)在C: ' wamp ' www ' vsi '网站' ' ' vsi_new_template_b ' templates ' node.tpl.php主题第3行

(行号已更改以匹配示例)

有人知道为什么第一行与函数的最后一行相冲突吗?顺便说一句,在另一个模板中使用一个具有不同名称的函数副本,因此该代码是有效的。

在Drupal中,主题模板文件使用的任何函数都应该放在主题使用的template.php文件中。

@mario是正确的,错误是由于文件被包含了不止一次,但如果你把函数放在template.php文件中,错误将不再出现,因为它只包含一次。

模板文件的内容应该是显示输出所需的代码。