Enrico: Fehlermeldung "Fatal error: Cannot redeclare"

Beitrag lesen

Hallo,

ich habe in der php-Datei "Standard.php" mehrere Funktionen definiert.

Hier (auszugsweise) der Inhalt der Datei:

  
<?php  
  
   function bin2hex($t)  
   {  
      $r="";  
  
      for($i=0,$j=strlen($t);$i<$j;$i++)  
         $r.=sprintf("%02x",ord($t{$i}));  
  
      return $r;  
   }  
  
   function hex2bin($t)  
   {  
      $r="";  
  
      for($i=0,$j=strlen($t);$i<$j;$i+=2)  
         $r.=chr(hexdec($t{$i}.$t{($i+1)}));  
  
      return $r;  
   }  
  
   ...  
  
?>  

Unverständlicherweise bekomme ich folgende Fehlermeldung angezeigt:

Fatal error: Cannot redeclare bin2hex() in Standard.php on line 9

Zeile 9 bezieht sich hierbei auf die schliessende geschweifte Klammer der Funktion bin2hex.

Die Funktion existiert nur ein einziges Mal und auch nur in dieser Datei.

Die einzige Möglichkeit, diese Fehlermeldung zu unterbinden, ist, die Funktion in folgende Abfrage einzuschliessen:

  
   if(!function_exists("..."))  
   {  
      function bin2hex($t)  
      {  
         $r="";  
  
         for($i=0,$j=strlen($t);$i<$j;$i++)  
            $r.=sprintf("%02x",ord($t{$i}));  
  
         return $r;  
      }  
   }  

Warum ist das so?

Bei allen nachfolgenden Funktionen habe ich diesen Fehler (?) nicht.

Die Abfrage macht zudem absolut keinen Sinn, da die Funktion vorher und nachher kein weiteres Mal vorkommt.

Danke für eure Hilfe.

Gruß
Enrico