PHP, da? Se dă
$x = 1; $x = $x++; echo $x;
Cât afișează? De ce?
Fiecare are dreptul la un singur răspuns. Răspunsurile sunt moderate, iar cele corecte nu vor fi publicate decât după o discuţie pe mail. 🙂
*inspirat de Radu Chelariu, unul dintre cei mai tari designeri pe care îi știu
Hahaha, la asta chiar nu ma asteptam :)))
2?
Se face atribuirea inainte de incrementare.
http://www.php.net/manual/en/language.operators.increment.php
Încă nu am primit un răspuns corect şi complet. Citiţi bine întrebările!
1. Ca sa fie 2 trebuie $x = ++$x; 🙂
da, mea culpa 🙂
se afiseaza 1
$x va returna in formula asta mereu 1 pentru ca adaugarea se face dupa executia codului. Daca introduci adaugarea (++) inainte de executia codului obtii valoara 2 🙂
($x++ = adaugare dupa executie / ++$x adaugarea inainte de executie)
Păi atunci întâi se face atribuirea şi apoi se incrementează şi tot 2 ar trebui să rămână $x, nu? 🙂
Eşti aproape, dar tot n-am primit răspunsul corect şi complet.
Nu stiu, dar box-ul de “Post Comment” iti iese din formular. 😛
It’s a feature, not a bug. 😛
:))))) Mi s-a acrit de replica asta.
Hai ca nu e asa rau, are si un fel de umbra (sau m-am uitat eu prea mult in monitor si halucinez)…
Este foarte logic…si simplu.Trebuie sa calculezi descazutul…restul se deduce!:)))
$x = 1; // variabila x = 1
$x=$x++; // variabila x se incremneteaza rezultatul este variabila neincrementata deci $x e vesnic 1
exemplu mai clar
$y = 1; //variabila y = 1
$x=$y++; /*variabila y se incremneteaza rezultatul este variabila neincrementata deci $x e 1 */
echo $x; // aici x=1
echo $y; // aici y e deja 2
$x = 1; /lui x i se atribuie valoarea 1/
$x = $x++; /x are inca valoarea 1 (postincrementare) /
echo $x; /aici x are valoarea 2 /
daca se folosea ++x (preincrementare) echo $x era tot 2.
Pentru ca x++ intai incrementeaza si apoi atribuie valoarea. La momentul incrementarii x=1, dupa incrementare ar fi 2, dar tu ii atribui $x= ceva exact la inceputul incrementarii, nu dupa.
IMHO, nu sunt chiar expert 🙂
1; $x++ are ca efect returnarea valorii lui x si apoi incrementarea lui;
daca se folosea doar $x++, atunci $x devenea 2.
Am primit câteva răspunsuri corecte, însă nu le-am publicat până acum deoarece mi-aş fi dorit să răspundă cineva care ar fi vrut să se angajeze la 2Parale. Nu s-a întâmplat…
Primul hint l-a dat @Mihai Brehar, apoi au raspuns corect şi complet @avram, @Dan și @Sebi.