php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 04.03.2005, 19:55  
Gast
 
Beiträge: n/a
Standard Fatal error: Cannot redeclare datei_erstellen() (previously

Tja... Dieser Fehler macht mir ein bisschen zu schaffen. Ich habe mich bereits mal umgesehen, und bin hierauf gestoßen:
http://www.php-faq.de/q/q-fehler-class-redeclare.html
Das hilft mir allerdings nicht weiter weil:
1. Ich meine Datei mit externen Funktionen nur einmal einbinde.
2. Mehrere Funktionen in dieser Datei definiert sind, allerdings nur bei einer die Fehlermeldung kommt. Gibt es noch andere Gründe für diesen Fehler?

Achja, falls es hilft: Der Fehler kommt auch, wenn ich die Funktion nicht aufrufe.


Edit: Ich habe gerade festgestellt, dass es sich wohl um eine andere Funktion handelt, die ich in der Tat 2mal aufrufe, eine Funktion, mit der ich den Inhalt eines Arrays ordne. Ich habe 2 verschiedene Funktionen hierzu:
PHP-Code:
<?php
function sortiere($user1$b) {   
    if (
$user1 == $b) return 0
  return (
$user1 $b) ? -1;
}


function 
sortiere3($xxx$b) {   
    if (
$xxx == $b) return 0
  return (
$xxx $b) ? : -1;
}
?>
Ich lasse ein und dasselbe Array einmal durch die erste und einmal durch die zweite Funktion laufen. Irgentwie passt ihm das wohl nicht.
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 04.03.2005, 20:02  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Du verwendest für das Einbinden include oder require, oder?
Ändere das mal in include_once bzw. require_once

Grüße Ben.
imported_Ben ist offline  
Alt 04.03.2005, 20:09  
Gast
 
Beiträge: n/a
Standard

selber Fehler. Achja: Lies dir mal mein Edit durch, falls du das noch nicht getan hast. Habe ich noch schnell hinzugefügt.
 
Alt 04.03.2005, 20:18  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Zorki
selber Fehler. Achja: Lies dir mal mein Edit durch, falls du das noch nicht getan hast. Habe ich noch schnell hinzugefügt.
1. verwende require_once(). Frag nicht, verwende immer require_once.
2. kontrolliere die eingefügten Scripte, ob dort ggf. die Funktion mehrfach deklariert wird. Erst gucken, dann meckern. Auch mir passiert das, daß eine meiner "meikel-funktionen" dummerweise in zwei unterschiedlichen Files vorhanden ist und PHP sich dann beim require des 2. Files berechtigt darüber aufregt.
 
Alt 05.03.2005, 15:34  
Gast
 
Beiträge: n/a
Standard

Ich include, bzw. require nur eine Datei, und in der befinden sich höchstens die beiden oben genannten Funktionen, die als gleich interpretiert werden könnten. Allerdings sind es ja nicht dieselben Funktionen.
Achja: require_once() funktioniert auch nicht, das heißt, selber Fehler.
 
Alt 05.03.2005, 18:04  
Gast
 
Beiträge: n/a
Standard

Jetzt aber mal nicht so ungenau.
Die von Dir angegebene Fehlermeldung:
Fatal error: Cannot redeclare datei_erstellen() (previously
sagt einwandfrei aus, dass
eine Funktion mit dem Namen datei_erstellen mehrfach existiert.
Es geht nicht um den Aufruf der Funktion!
Es geht darum, dass in Deinem Quelltext
MEHRFACH auftaucht:
function datei_erstellen()
{
...
}
Vielleicht ja einmal direkt in der Hauptdatei und einmal in der per include eingebundenen Datei.

Gruß
Fred
 
Alt 05.03.2005, 18:52  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Du kannst so oft sagen, dass Du die Funktion nicht mehrfach deklarierst, wie Du möchtest ... aber Du tust es trotzdem. Sonst würde ja die Fehlermeldung nicht erscheinen
imported_Ben ist offline  
Alt 05.03.2005, 19:07  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.798
PHP-Kenntnisse:
Fortgeschritten
robo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblick
Standard

und die fehlermeldung müsste dir sogar sagen wo was wieder deaklriert wird.
robo47 ist offline  
Alt 05.03.2005, 22:07  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Zorki
Achja: require_once() funktioniert auch nicht, das heißt, selber Fehler.
Den Punkt 2 wolltest Du wohl nicht lesen?
 
Alt 05.03.2005, 22:22  
Gast
 
Beiträge: n/a
Standard

Das ist schon lustig. Ich habe die Funktion definitiv nur einmal in meinem Code. Nehmen wir mal an, ich hätte sie zweimal drinne, und seh sie nur einmal, weil ich blind oder sontwas bin. Dann müsste die Fehlermeldung doch verschwinden, wenn ich die Funktion die ich sehe umbenenne, oder? Wenn ich sie jetzt umbenenne, dann ändert sich aber lediglich die Fehlermeldung, und past sich dem namen an. Geht die Fehlermeldung eigentlich nach dem Inhalt oder dem Namen der Funktion? Außerdem: Obwohl ich die Funktion nur einmal habe, kommt diese Fehlermedlung. Das lässt schließen, dass ich meine Funktionsdatei mehrmals einbinde, was aber auch wieder nicht sein kann, da die anderen Funktionen keine Probleme machen.

Und weil mir die Fehlermeldung soviel sagt, hier nochmal in Komplettausführung:

Fatal error: Cannot redeclare datei_erstellen() (previously declared in /.../a.php:173) in /.../a.php on line 171

Zeile 171 : function datei_erstellen() {
Zeile 173 : usort ($user1, "sortiere3");

die Funktionen sortiere und sortiere3 stehen weiter oben im Thread. hoffe ihr könnt mir jetzt etwas genaueres dazu sagen.

Edit: Achja, wenn ich die Datei mit den Funktionen nicht einfüge, sondern direkt ins Script schreibe, kommt der gleiche Fehler, und es werden wieder dieselben Zeilen angegeben.
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Fatal error: Cannot redeclare CSQLAdmin PHP Tipps 2004-2 3 28.11.2004 14:42
[Erledigt] Cannot redeclare autolink() (previously declared ?!?! PHP Tipps 2004 6 25.08.2004 21:42

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
fatal error: cannot redeclare, http://www.php.de/php-tipps-2005/18998-fatal-error-cannot-redeclare-datei_erstellen-previously.html, php funktionen mehrfach aufrufen cannot redeclare, usort vergleich funktion cannot redeclare, usort redeclaring fatal error, fatal error usort redeclaring, php fatal error: cannot redeclare class, php fatal error: cannot redeclare (previously declared chaching, cannot redeclare format() (previously declared, php5 cannot redeclare, usort cannot redeclare

Alle Zeitangaben in WEZ +1. Es ist jetzt 20:30 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.