无法重新声明功能php

时间:2012-06-07 11:11:43

标签: php function fatal-error redeclare

我有一个名为parseDate的函数,但当我在我的php页面上调用它时(它是一个joomla组件页面)我得到致命错误:无法重新声明parsedate()(之前在templates / ja_zeolite / assets / functions.php中声明: 2)在第21行的templates / ja_zeolite / assets / functions.php中

第2行是函数解析($ data),第21行是}(函数结束)。 功能是:

function parseDate($date){
$items = explode('.', $date);
switch($items[1]){
    case 1: $mese = 'Gen'; break;
    case 2: $mese = 'Feb'; break;
    case 3: $mese = 'Mar'; break;
    case 4: $mese = 'Apr'; break;
    case 5: $mese = 'Mag'; break;
    case 6: $mese = 'Giu'; break;
    case 7: $mese = 'Lug'; break;
    case 8: $mese = 'Ago'; break;
    case 9: $mese = 'Set'; break;
    case 10: $mese = 'Ott'; break;
    case 11: $mese = 'Nov'; break;
    case 12: $mese = 'Dic'; break;
    default: $mese = '---';
}
$data_corretta = array(0 => $mese, 1 => $items[2]);
return $data_corretta;
}

我也尝试更改名称功能,但它仍无效。

为什么呢?

2 个答案:

答案 0 :(得分:88)

您(或Joomla)可能会多次包含此文件。将您的函数包含在条件块中:

if (!function_exists('parseDate')) {
    // ... proceed to declare your function
}

答案 1 :(得分:16)

删除该功能并检查输出:

var_dump(function_exists('parseDate'));

在这种情况下,请更改功能名称。

如果你弄错了,你将该文件包含两次该文件,请替换:

include

通过

include_once

并替换:

require

通过

require_once

编辑:我有点太晚了,发帖之前打败了我!