pin*_*dol 32 php function fatal-error redeclare
我有一个名为parseDate的函数,但是当我在我的php页面上调用它时(它是一个joomla组件页面)我得到致命错误:无法重新声明parsedate()(之前在templates/ja_zeolite/assets/functions.php:2中声明)in第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;
}
Run Code Online (Sandbox Code Playgroud)
我也尝试更改名称功能,但它仍然无效.
为什么?
lan*_*nzz 90
您(或Joomla)可能会多次包含此文件.将您的函数包含在条件块中:
if (!function_exists('parseDate')) {
// ... proceed to declare your function
}
Run Code Online (Sandbox Code Playgroud)
Jea*_*ets 16
删除该功能并检查输出:
var_dump(function_exists('parseDate'));
Run Code Online (Sandbox Code Playgroud)
在这种情况下,请更改函数的名称.
如果你得到假,那么你要用该函数包含两次文件,替换:
include
Run Code Online (Sandbox Code Playgroud)
通过
include_once
Run Code Online (Sandbox Code Playgroud)
并替换:
require
Run Code Online (Sandbox Code Playgroud)
通过
require_once
Run Code Online (Sandbox Code Playgroud)
编辑:我只是有点太晚了,发帖之前打败了我!