39

parseDate という関数がありますが、php ページ (これは joomla コンポーネント ページです) で呼び出すと、Fatal error: Cannot redeclare parsedate() (previously defined in templates/ja_zeolite/assets/functions.php:2) が表示されます。 templates/ja_zeolite/assets/functions.php 21行目

2 行目は関数 parsedate($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;
}

名前の機能も変更しようとしましたが、それでも機能しません。

なんで?

4

2 に答える 2

103

あなた (または Joomla) は、このファイルを複数回インクルードしている可能性があります。関数を条件付きブロックで囲みます。

if (!function_exists('parseDate')) {
    // ... proceed to declare your function
}
于 2012-06-07T11:18:06.890 に答える
17

関数を削除し、次の出力を確認します。

var_dump(function_exists('parseDate'));

その場合は、関数の名前を変更してください。

falseになった場合は、その関数を含むファイルを2回インクルードしているので、次を置き換えます。

include

include_once

そして置き換えます:

require

require_once

編集:私は少し遅すぎます、私を倒す前に投稿してください!

于 2012-06-07T11:22:54.153 に答える