Natürlich glaube ich dir. Aber warum funktionieren die Funktionen nach der Umstellung auf PHP 5 nicht mehr, bei denen im Erfolgsfall kein return-Befehl im Code gesetzt wurde?
Ohne return-Befehl Werte immer 'false'
Collapse
X
-
Originally posted by weltvolk View PostAber warum funktionieren die Funktionen nach der Umstellung auf PHP 5 nicht mehr, bei denen im Erfolgsfall kein return-Befehl im Code gesetzt wurde?
Comment
-
Wenn eine Funktion keinen return-Befehl hat, gibt sie null zurück. Das hat sich in PHP5 nicht geändert. Wenn Du auf "ungleich true" prüfst, schlägt ein Rückgabewert 'null' genauso an wie 'false' oder jeder andere Wert außer true. Das war auch schon immer so. Deshalb würde ich gern die Original-Stelle sehen, an der Du das Ergebnis prüfst.
Wenn Du folgendermaßen prüfst:
if (!$ergebnis)
schlagen false und null an.
Wenn Du folgendermaßen prüfst:
if ($ergebnis === false)
schlägt nur false an. Das ist im Normalfall die optimale Lösung.
Comment
-
Originally posted by piratosEs ist ja eigentlich alles gesagt.
Originally posted by piratos2a. Es ist unsinnig eine Funktion ohne Rückgabewert als eine solche nutzen zu wollen.
null ist auch ein Rückgabewert.
</haarspalterei>
Comment
-
Ihr habt recht. Es funktionieren nur die Funktionen nicht mehr, die eine Datei übertragen. Einen return-Befehl bei zweischrittigen Funktionen, wie oben die Funktion 'ftp_copy', auszulassen, ist sicherlich unsauber, funktioniert aber weiterhin. Der Fehler liegt also woanders. Wie kann ich den Dateiinhalt von $z denn anzeigen lassen/debuggen?
Comment
Comment