Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
15.08.2002, 14:44
chi



ich glaube, dass es so heisst, hab das mal in c++ gesehen:
++$var
ich frage mich wo ist der unterschied zu
$var++

wird in einer schleife
$var=0;
while($x[$var]=mysql_fetch_array($y)){
$var=++$var;
}

$var erst nach einem durchlauf erhöht oder was?

--

when the truth walks away
everybody stays
cause the truth about the world is that crime does pay

zum Seitenanfang zum Seitenende Profil || Suche
001
15.08.2002, 15:43
CN



http://www.resourcecode.de/?tutorial=1&id=42

da stehts erkärt
zwar für c++ aber das is egal

--

zum Seitenanfang zum Seitenende Profil || Suche
002
15.08.2002, 16:42
chi



kommt dabei:
Quellcode:a = 12;
    a += ++a + a ++;
    a = a + a;

a=38 raus?

wenn ja hab ichs kapiert

--

when the truth walks away
everybody stays
cause the truth about the world is that crime does pay

zum Seitenanfang zum Seitenende Profil || Suche
003
15.08.2002, 17:13
Andy_



Also, es läuft wie folgt ab:
erstmal wird a durch ++a inkementiert(13), und der wert a zugewiesen, erst dann wird weitergerechnet, dann wird nochmal mit a (13) addiert, und das ergebnis mit 1 addiert (27), durch += wird daraus 13 + 27 = 40
Durch die nächste zeile wird a nochmal mit sich selbst addiert, was 80 ergibt.

--

42 Es gibt keinen Sinn des Lebens.


Dieser Beitrag wurde am 15.08.2002 um 17:21 von Andy bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
004
15.08.2002, 17:25
Onkel Dittmeyer



Hier n etwas einfacheres Beispiel:
Quellcode:
$a = 14;

echo $a++ . "\n";

echo ++$a . "\n";

Ausgabe:

14

16

Also kann man für echo ++$a . "\n"; auch schreiben:

a += a;
echo $a;

und für echo $a++ . "\n";

echo $a
a += a;

--


Dieser Beitrag wurde am 15.08.2002 um 17:28 von [dP]ThEpOpE bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
005
15.08.2002, 17:44
TheTinySteini



Zitat:
wird in einer schleife
$var=0;
while($x[$var]=mysql_fetch_array($y)){
$var=++$var;
}

$var erst nach einem durchlauf erhöht oder was?


Nein, $var wird direkt inkrementiert. Allerdings kannst du dir das $var= schenken, ++ weist den neuen Wert gleich wieder $var zu.
Es ist nur wichtig ob man ++$var oder $var++ nimmt, wenn man direkt mit dem Rückgabewert der Operation arbeiten will. Beispiel:
Quellcode:for( int i = 0; i++ < 10; printf("%d", i) ); // gibt 1..10 aus
for( int i = 0; ++i < 10; printf("%d", i) ); // gibt 1..9 aus
... außer ich hab mich grade "verdacht" =)

--

TheTinySteini
Coder Poke646
"Don't Panic" - Hitchhiker's Guide to the Galaxy

zum Seitenanfang zum Seitenende Profil || Suche
006
15.08.2002, 18:01
chi



ok danke, ich habe jetzt eine andere php frage und zwar zu upload von dateien:

mein code sieht so aus:
Quellcode:if(!($newf_type == 'image/pjpeg' OR $newf_type == 'image/gif'))
{
$err=1;
print "Die Datei hat ein falsches Format.<br>";
}

jetzt lade ich ein jpg bild hoch und sofort kommt die meldung Die Datei hat ein falsches Format.
aber warum?

--

when the truth walks away
everybody stays
cause the truth about the world is that crime does pay

zum Seitenanfang zum Seitenende Profil || Suche
007
15.08.2002, 18:07
CN



'image/pjpeg' is es nich "image/jpeg"?
ausserdem würd ich doppelte quotes nehmen und nich einfache

--

zum Seitenanfang zum Seitenende Profil || Suche
008
15.08.2002, 18:13
dp
Administrator


einfache quotes sind schneller, wenn sowieso keine vars zum parsen drin sind wieso dann doppelte?

--

zum Seitenanfang zum Seitenende Profil || Suche
009
15.08.2002, 18:16
chi



nein es ist pjpeg

--

when the truth walks away
everybody stays
cause the truth about the world is that crime does pay

zum Seitenanfang zum Seitenende Profil || Suche
010
15.08.2002, 18:46
TheTinySteini



Hm, ich wäre auch von image/jpeg ausgegangen. Die Abfrage an sich ist jedenfalls in Ordnung.
Gib doch einfach mal die mime-Type aus. Was sagt er dann?

--

TheTinySteini
Coder Poke646
"Don't Panic" - Hitchhiker's Guide to the Galaxy

zum Seitenanfang zum Seitenende Profil || Suche
011
15.08.2002, 19:10
Andy_



Also, eigentlich ist soweit ich weiß der mime-typ images/jpeg, und nicht pjpeg, wie eigentlich in den Konventionen steht: http://www.iana.org/assignments/media-types/image/

Außerdem würde ich mal beim Uploadscript den Enctyp prüfen, ob er "multipart/form-data" ist, und register_globals 0 konvorme Typen-Abfrage benutzen:
$HTTP_POST_FILES['newf']['type']
Ansonsten kann ich auch keinen möglichen Fehler entdecken.

--

42 Es gibt keinen Sinn des Lebens.

zum Seitenanfang zum Seitenende Profil || Suche
012
15.08.2002, 20:18
chi



Zitat:
Andy postete
Außerdem würde ich mal beim Uploadscript den Enctyp prüfen, ob er "multipart/form-data" ist

lol danke

ich hab geschrieben formdata statt form-data

p.s. mit pjpeg geht es auch
thx

--

when the truth walks away
everybody stays
cause the truth about the world is that crime does pay

zum Seitenanfang zum Seitenende Profil || Suche
013
15.08.2002, 21:34
Tron



Zitat:
chi postete
kommt dabei:
Quellcode:a = 12;
    a += ++a + a ++;
    a = a + a;

a=38 raus?

wenn ja hab ichs kapiert

das ergebnis ist undefinert, da a += ++a + a ++; zwar syntaktisch korrekt, aber die evaluierung ist undefienert!
niemals operatoren mit nebeneffekten mehrfach in einem ausdruck verwenden!

--

'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams

'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett

zum Seitenanfang zum Seitenende Profil || Suche
014
16.08.2002, 07:46
Tron



brrrr.... das merk ich jetzt grade, was fuer einen stuss ich da geschrieben habe
das sollte so heissen:
das ergebnis ist undefinert, da a += ++a + a ++; zwar syntaktisch korrekt, aber die evaluierung ist undefiniert!
niemals variablen, auf die ein operator mit nebeneffekten angewandt wird, mehrfach in einem ausdruck verwenden!

--

'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams

'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett

zum Seitenanfang zum Seitenende Profil || Suche
015
16.08.2002, 13:48
[PE]Spinator



nix undefiniert, Andy hat recht...

--

This post was written using Opera 7.0 (http://www.opera.com)

zum Seitenanfang zum Seitenende Profil || Suche
016
16.08.2002, 15:05
Tron



Zitat:
[PE]Spinator postete
nix undefiniert, Andy hat recht...

verzaehl mir nix vom elch!
das ergebnis von
a += ++a + a++;
is UNDEFINIERT.
mag sein, dass dein compiler ebenfalls 38 als ergebnis produziert, aber darauf kannst du dich NICHT verlassen, schon die naechste version des compilers kann ein anderes ergebnis produzieren!
z.b. mein compiler spuckt als ergebnis 80 aus.

Zitat:
niemals variablen, auf die ein operator mit nebeneffekten angewandt wird, mehrfach in einem ausdruck verwenden!

--

'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams

'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett

zum Seitenanfang zum Seitenende Profil || Suche
017
16.08.2002, 17:06
theDon



das problem ist das du nicht weisst in welcher reihenfolge der compiler das auswertet...

--

\o tanz den naziprau! o/

And more than ever, I hope to never fall,
Where enough is not the same it was before

zum Seitenanfang zum Seitenende Profil || Suche
018
16.08.2002, 17:54
[PE]Spinator



Andy hat auch 80 provezeit... und die reihenfolge ist auch klar.
sollte es nicht definiert sein würde der compiler das schon melden, bzw. wäre es garnicht möglich.
in-/dekrement werden vor bzw. nach einer operation ausgeführt, also stellt dieser ausdruck gar kein prob dar...

--

This post was written using Opera 7.0 (http://www.opera.com)


Dieser Beitrag wurde am 16.08.2002 um 17:55 von [PE]Spinator bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
019
16.08.2002, 18:11
Andy_



Achja, außerdem hab ich das beispiel in PHP gewertet, siehe Thread-Überschrift. Ich weiß nicht, ob man diese Schreibart bei PHP auch umgehen sollte, aber PHP nimmt es syntaktisch und Logisch korrekt an, und hat damit keine Probleme mit dem Code.

--

42 Es gibt keinen Sinn des Lebens.

zum Seitenanfang zum Seitenende Profil || Suche
020
16.08.2002, 21:21
Kriz



Die Abarbeitungsreihenfolge von Operatoren unterliegen ihrer Priorität, Assoziativität und je nachdem auch den allgemeinen Rechenregeln. Ob PHP diesselben Vorgaben macht wie C/C++, weiß ich jetzt nicht, bin auch zu faul das jetzt nachzuprüfen...

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)

zum Seitenanfang zum Seitenende Profil || Suche
021
16.08.2002, 22:33
Andy_



Anscheinend ja, kommt auf das gleiche Ergebnis wie in C++.
Das mit den Prioritäten, auch Operator Vorrang gennant, wollt ich auch noch sagen, naja, wofür gibts sonst Kriz.
Im Buch "C++ in 21 Tagen" gibts eine schöne Tabelle.

Soweit ich sehe befolgt PHP es genauso, was auch nicht wundert, da PHP sich vom Syntax her dem von C++ sehr ähnelt.

--

42 Es gibt keinen Sinn des Lebens.

zum Seitenanfang zum Seitenende Profil || Suche
022
17.08.2002, 09:23
theDon



das problem ist nur, das du nicht weisst ob der compiler das ganze von rechts nach links oder von links nach rechts auflöst...definiert ist es in jedem fall, nur: das ergebnis ist compilerabhängig

--

\o tanz den naziprau! o/

And more than ever, I hope to never fall,
Where enough is not the same it was before

zum Seitenanfang zum Seitenende Profil || Suche
023
17.08.2002, 12:15
Tron



das ergebnis ist laut ISO-C++ standard UNDEFINIERT, d.h. egal was dein compiler fuer ein ergebnis liefert, es widerspricht NICHT dem ISO-C++ standard.
so wird es auch bei PHP sein, aber da bin ich zu faul die spezifikation zu suchen und zu lesen.

und ueberhaupt: wer braucht so einen ausdruck?

--

'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams

'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett

zum Seitenanfang zum Seitenende Profil || Suche
024
17.08.2002, 12:40
KhanRKerensky



Zitat:
es widerspricht NICHT dem ISO-C++ standard.

Dann ist ja alles in Ordnung! :P

--

"[...] you're going to burn in a very special level of Hell. A level they reserve for child molesters and people who talk at the theater." - Book

zum Seitenanfang zum Seitenende Profil || Suche