Andreas Korthaus: txt Datei erzeugen

Beitrag lesen

Hi Christoph!

Ich hoffe Du verstehst es trotzdem.

Jaein, ich weiß noch nicht genau.

Aber Du sagts Du würdest ein "else" erwarten - wieso das? Was hat das mit einem ! im Ausdruck von if zu tun?

if (!fputs())

Das sagt einfach aus:

"Wenn SCHREIBEN nicht funktioniert hat, mache irgendwas"

In dem Moment wo man SCHREIBEN "sagt" wird versucht zu schreiben, sollte  es nicht klappen steht da im Prinzip sowas wie if(!FALSE) -> if(TRUE), also wird die folgende Anweisung ausgeführt. Falls es funktioniert, hat, sagen wir es wurden 10 Zeichen geschrieben, steht im Ausdruck: if(! (bool) 10) -> if(!TRUE) -> if(FALSE), also wird die folgende Anweisung nicht ausgeführt.

Funktionen werden grundsätzlich während der If-Prüfung ausgeführt, damit man an den Rückgabewert kommt, den man ja für die Auswertung des Ausdrucks benötigt. Das heißt, bei fopen() wird _während_ der Prüfung bereits eien Datei geöffnet und in $handle geschrieben, bei fputs() wird während der Prüfung bereits alles in die Datei geschrieben. BEide Funtionen geben im Fehlerfall FALSE zurück, was durch ! dazu führt dass der Ausdrück von If mit TRUE ausgewertet wird, so dass die "verzweigte" Fehlermeldung ausgegeben wird.

Grüße
Andreas

--
SELFHTML Tipps & Tricks: http://aktuell.de.selfhtml.org/tippstricks/