Operatory inkrementacji i dekrementacji


(Piotrek Płatek) #1

Witam !

Ciąg dalszy moich problemów z PHP.

Otóż tutaj jest cosik o tych operatorach.

Wszystko jest zakończone przykładem:

<?

echo "

Postinkrementacja

"; $a = 5; echo "Powinno być 5: " . $a++ . " \n"; echo "Powinno być 6: " . $a . " \n"; echo "

Preinkrementacja

"; $a = 5; echo "Powinno być 6: " . ++$a . " \n"; echo "Powinno być 6: " . $a . " \n"; echo "

Postdekrementacja

"; $a = 5; echo "Powinno być 5: " . $a-- . " \n"; echo "Powinno być 4: " . $a . " \n"; echo "

Predekrementacja

;"; $a = 5; echo "Powinno być 4: " . --$a . " \n"; echo "Powinno być 4: " . $a . " ;\n"; ?> [/code]

Nie rozumiem dlaczego w tym miejscu powinno być 6, a nie 5. Wiem, że w poprzedniej linijce zmienna została zwiększona o 1, ale dlaczego tutaj również jest większa ?

W ogóle tego nie pojmuję :?

Mógłby mi ktoś troszkę obszerniej wytłumaczyć zagadnienie tych operatorów ?

Dziękuję i pozdrawiam


(Daro U) #2

ponieważ kod

$a++;

odpowiada takiemu kodowi:

$a=$a+1;

lub takiemu:

$a+=1;


(Piotrek Płatek) #3

czyli to przechodzi jakoś śmiesznie do następnej linijki. A jakim sposobem zakończyć to przechodzenie. Że w dziesięciu przypadkach używam tego większego o jeden a w jedynastym nie.


(Airborn) #4

yy ja rozumiem ze Ty pytasz o roznice pomiedzy post-, a pre- dekrementacja (inkrementacja). Otoz w podanym przykladzie: post najpierw powoduje wyswietlenie zmiennej, a nastepnie dodanie do niej (odjecie) 1, natomiast pre najpierw zmienia wartosc zmiennej a dopiero potem ja wyswietla


(Piotrek Płatek) #5

Dobra, chyba powoli zaczynam kapować. Pogapię się w to jeszcze z 10 min, wszystko przeanalizuję i wejdzie do mózgownicy.


(Airborn) #6

$a = 5; // zmienna przyjmuje wartosc 5

echo "Powinno być 5: " . $a++ . "

\n"; // wyswietla zmienna (5) i dodaje do niej 1

echo "Powinno być 6: " . $a . "

\n"; // wyswietla zmienna (teraz juz 6)

$a = 5; //zmienna przyjmuje wartosc 5

echo "Powinno być 6: " . ++$a . "

\n"; //powieksza zmienna o 1, a potem wyswietla ja (6)

echo "Powinno być 6: " . $a . "

\n"; //wyswietla zmienna (6), ktora niezmienila sie od poprzedniej linijki kodu


(Piotrek Płatek) #7

oki, dzięki, już w pełni rozumiem o co chodzi :slight_smile:


(Balon) #8

uzywasz w petli tego 10 razy ....

for($i=0; $i<9; $i++){ $i }

i to wyswietli liczbe zaczynajac od 0 i konczac na 9