當我嘗試在drupal 7中聲明一個簡單的函數時出現奇怪的錯誤。我在模板文件的頂部聲明瞭一個函數(我知道,通常是一個no no,但我需要得到這些模板進行快速,沒有時間開發的功能模塊現在)所以我聲明在文件的頂部以下內容:函數聲明與自身衝突
1. function templateB_EventRegistrationNode($params = NULL) {
2. /* code */
3. }
然而,當我嘗試運行我得到模板出現以下錯誤
Fatal error: Cannot redeclare templateB_EventRegistrationNode() (previously declared in C:\wamp\www\vsi\sites\all\themes\vsi_new_template_b\templates\node.tpl.php:1) in C:\wamp\www\vsi\sites\all\themes\vsi_new_template_b\templates\node.tpl.php on line 3
(行號已更改爲匹配前充足)
任何人都有任何想法爲什麼第一行與函數的最後一行衝突?順便說一句,具有不同名稱的函數的副本在另一個模板中工作,所以代碼是有效的。
可能是因爲模板文件可能包含多次,第二個包含導致錯誤。 – 2013-05-03 17:35:13
行號是無關緊要的(正如你對這個例子模糊不清)。這是問題的功能重新宣佈。通過將它包裝在if(!function_exists(「...」)){「中來使用延遲定義。 – mario 2013-05-03 17:36:24
真棒,謝謝你,指出我在正確的方向。 – matt 2013-05-03 17:39:46