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
-
Es ist ja eigentlich alles gesagt.
1. Das Verhalten in dieser Hinsicht von PHP 4 zu 5 hat sich nicht geändert.
2. Wird eine Funktion ohne Rückgabewert wie eine Funktion mit Rückgabewert benutzt ist der Rückgabewert immer NULL.
2a. Es ist unsinnig eine Funktion ohne Rückgabewert als eine solche nutzen zu wollen.
3. NULL ist nicht false, wird aber wenn kein Typ überprüft wird es als false angesehen , kann man feststellen wenn man in einer Abfrage den Typ überprüft ( mit ===).
PHP Code:$ergebnis = addieren(1,2);
if ($ergebnis === false) echo 'Es ist false';else echo 'Es ist nicht false';
Comment
-
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
-
Ich habe es wiederholt weil das alles verkleckert auf diversen Beiträgen kam, quasi als Zusammenfassung.
Originally posted by pekka View Post<haarspalterei>
Es ist somit auch unsinnig eine Funktion zu der man keinerlei Rückgabe erwartet diese so einzusetzen, da kein Nutzen vorhanden.
Comment
Comment