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/