web-dev-qa-db-ja.com

関数phpを再宣言できません

ParseDateという関数がありますが、phpページ(joomlaコンポーネントページ)で呼び出すと、次の致命的なエラーが発生します:parsedate()を再宣言できません21行目のtemplates/ja_zeolite/assets/functions.php

行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;
}

名前関数も変更しようとしましたが、まだ機能しません。

どうして?

32
pindol

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

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

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

var_dump(function_exists('parseDate'));

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

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

include

によって

include_once

そして交換:

require

によって

require_once

編集:私は少し遅すぎる、それを打つ前に投稿してください!

16