Fehlermeldung: Fatal error: Cannot redeclare

Hallo,
habe gestern eine kleine Function geschrieben. Da ist sie ohne Fheler durchgelaufen, jetzt bekomme ich folgende Fehlermeldung:
Fatal error: Cannot redeclare stg_Heizungsprofil_Manuell() (previously declared in /mnt/data/symcon/scripts/Heizungs_Funktionen.ips.php:34) in /mnt/data/symcon/scripts/Heizungs_Funktionen.ips.php on line 73

Habe heute Abend einen Update auf meiner Symbox gemacht.
Mein Stand ist im Moment IP-Symcon 4.00, 11.01.2016, 501750cadd42

Was habe ich denn falsch gemacht?
Meine Function:


function stg_Heizungsprofil_Manuell($Debug_Func_JN, $Raum_Profil_Loc, $Heizungssteuerung_Global)
{
	// ***************************************************************************************
	// Funktionsbeschreibung:
	// Ermittlung ob Einzelraumsteuerung (Manuell / Boost) oder globales Profil angewendet werden soll
	//	*--------------------------------------------------------------------------------------
	// *  Version  Datum 		Beschreibung
	// *  1.01		09.01.2016  Einfügen von Historykopf
	// *  1.00		08.01.2016  Urersion
	// ***************************************************************************************
	//Libs einbinden
	include(IPS_GetScriptFile(15957 /*[Programme\Heizung\Scripte_Konfig\Konfig\Heizungs_Konfig]*/));
	// ***************************************************************************************
	// Programm

	switch ($Raum_Profil_Loc) {
	   case 0:
	      // Automatic
	      $akt_return = $Heizungssteuerung_Global;
	      break;
	   case 1:
	      // Manuell
	      $akt_return = 51;
	      break;
	   case 2:
	      // Boost
	      $akt_return = 52;
	      break;
	}
   if ($Debug_Func_JN == true) {
      echo "**************************************************
";
      echo "* Debug Info Function : stg_Heizungsprofil_Manuell
";
		echo "* Profil Loc            : ".$Raum_Profil_Loc."
";
		echo "* Profil global         : ".$Heizungssteuerung_Global."
";
		echo "* Profil maunell zurück : ".$akt_return."
";
      echo "**************************************************
";
	}
	// Rückgabewert
	return $akt_return;
}



Gruß
monte001

Abend!

Vermutlich hast du in dem Skript das du includest auch einen include? Und dann wird mehrmals versucht die function zu registrieren und das endet in einem Fehler…

Oder im include Skript gibt es die gleiche function mit gleichem Namen auch. Auf jeden Fall wird irgendwo in diesem Konstrukt versucht die function 2 mal zu „laden“ und deshalb der Fehler.

Grüße,
Chris

PHP bietet da Abhilfe :slight_smile:

if (!function_exists('stg_Heizungsprofil_Manuell'))
{
    function stg_Heizungsprofil_Manuell($Debug_Func_JN, $Raum_Profil_Loc, $Heizungssteuerung_Global)
    {
        ...
    }
}

Michael

Danke für Eure schnelle Hilfe, hab den Fehler gefunden.
Habe die Sicherung der Function versehentlich in das Script das ich includiere hinenkopiert.

Danke

Gruß
monte001

Immer diese Copy&Paste Fehler :smiley:
Das sind die besten Fehler :slight_smile:
Michael