php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 2 Stimmen, 5,00 durchschnittlich.
  #31 (permalink)  
Alt 03-08-2009, 11:19
weltvolk
 Registrierter Benutzer
Links : Onlinestatus : weltvolk ist offline
Registriert seit: Apr 2006
Ort: Kiel
Beiträge: 85
weltvolk ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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?
Mit Zitat antworten
  #32 (permalink)  
Alt 03-08-2009, 11:20
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von weltvolk Beitrag anzeigen
Aber warum funktionieren die Funktionen nach der Umstellung auf PHP 5 nicht mehr, bei denen im Erfolgsfall kein return-Befehl im Code gesetzt wurde?
Die Frage ist viel eher, wieso sollte das bei PHP 4 der Fall gewesen sein? Das war niemals so. Also hör jetzt auf mit dieser Sinnlos-Behauptung und fang an vernünftig zu debuggen.
Mit Zitat antworten
  #33 (permalink)  
Alt 03-08-2009, 11:22
pekka
 PHP Master
Links : Onlinestatus : pekka ist offline
Registriert seit: Jun 2001
Ort: Köln
Beiträge: 6.608
pekka befindet sich auf einem aufstrebenden Ast
Standard

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.
Mit Zitat antworten
  #34 (permalink)  
Alt 03-08-2009, 11:37
piratos
 Guest
piratos
Beiträge: n/a
Standard

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'
Mit Zitat antworten
  #35 (permalink)  
Alt 03-08-2009, 11:39
pekka
 PHP Master
Links : Onlinestatus : pekka ist offline
Registriert seit: Jun 2001
Ort: Köln
Beiträge: 6.608
pekka befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von piratos Beitrag anzeigen
Es ist ja eigentlich alles gesagt.
Warum wiederholst Du's dann?

Zitat:
Zitat von piratos Beitrag anzeigen
2a. Es ist unsinnig eine Funktion ohne Rückgabewert als eine solche nutzen zu wollen.
<haarspalterei>
null ist auch ein Rückgabewert.
</haarspalterei>
Mit Zitat antworten
  #36 (permalink)  
Alt 03-08-2009, 12:09
weltvolk
 Registrierter Benutzer
Links : Onlinestatus : weltvolk ist offline
Registriert seit: Apr 2006
Ort: Kiel
Beiträge: 85
weltvolk ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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?
Mit Zitat antworten
  #37 (permalink)  
Alt 03-08-2009, 12:10
pekka
 PHP Master
Links : Onlinestatus : pekka ist offline
Registriert seit: Jun 2001
Ort: Köln
Beiträge: 6.608
pekka befindet sich auf einem aufstrebenden Ast
Standard

Am einfachsten mit file_get_contents().
Error_reporting() kurzfristig hochdrehen, um alle eventuellen Fehler angezeigt zu bekommen.
und auch schauen, ob ein curl_error() nach curl_exec() eine Fehlermeldung auswirft.
Mit Zitat antworten
  #38 (permalink)  
Alt 03-08-2009, 12:59
piratos
 Guest
piratos
Beiträge: n/a
Standard

Ich habe es wiederholt weil das alles verkleckert auf diversen Beiträgen kam, quasi als Zusammenfassung.

Zitat:
Zitat von pekka Beitrag anzeigen
<haarspalterei>
Keineswegs , wer Rückgabewerte erwartet sollte einen Rückgabewert definieren, ansonsten ist hier NULL immer trivial, da ein Wert der immer gleich kommen wird ,weil PHP nichts anders hat.
Es ist somit auch unsinnig eine Funktion zu der man keinerlei Rückgabe erwartet diese so einzusetzen, da kein Nutzen vorhanden.
Mit Zitat antworten
  #39 (permalink)  
Alt 03-08-2009, 13:06
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

OffTopic:
Zitat:
Zitat von weltvolk Beitrag anzeigen
Ihr habt recht. [...] Der Fehler liegt also woanders.
Hallelujah.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[PHP5] setlocale('de_DE.UTF8') gibt immer false zurück Dr.Speck PHP Developer Forum 3 14-06-2008 12:17
is_numeric() ist immer false - ???? janein PHP Developer Forum 12 04-04-2008 22:38
Firefox vs IE - return false Problem Vankin HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 1 04-08-2006 08:35
IF mit mehreren ORs liefert immer false kolli1234 PHP Developer Forum 5 28-11-2004 11:32
return false ?!? ähhmm bin ich nur so oder das script :P JSkrok HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 3 28-04-2003 13:27

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script ansehen ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script

Mit unserer Lösungen können Sie nahezu jeden B2B / B2C Marktplatz betreiben den Sie sich vorstellen können. Ganz egal ob Sie einen Automarktplatz, Immobilenportal oder einfach einen Anzeigenmarkt betreiben möchten. Mit ebiz-trader können Sie Ihre Anforder

11.10.2018 Berni | Kategorie: PHP/ Anzeigenmarkt
PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:11 Uhr.