Avatar billede zhx Nybegynder
28. februar 2006 - 18:17 Der er 21 kommentarer og
1 løsning

Hvad betyder $a++

Hvad betyder $a++ ?
det er ikke så meget variablen, men de ++ ? håber der er en der kan hjælpe mig, jeg forstod ikke så meget af php.net
Avatar billede jarret Nybegynder
28. februar 2006 - 18:18 #1
det betyder $a = $a + 1;
Avatar billede webudvikleren Nybegynder
28. februar 2006 - 18:19 #2
Hvis du nu har:
$a = 1;
while (..)
{
  print $a;
  $a++;
}

tæller den op, fx:
1
2
3
4
5
6
7
8
9
...
999

$a--; tæller nedaf
Avatar billede jarret Nybegynder
28. februar 2006 - 18:20 #3
hvis du har en for løkke kan du for hvert gennemløb lægge en til med ++ eksempelvis
Avatar billede coderdk Praktikant
28. februar 2006 - 19:45 #4
Som jarret skriver er $a++ det samme som at skrive $a = $a + 1
Det kan også skrives: $a += 1;
Avatar billede zhx Nybegynder
28. februar 2006 - 20:29 #5
hvad så hvis man har værdien $a ="5"; ?'

kommer der så til at stå: 5 / 10 / 15 / 20 ?
Avatar billede zhx Nybegynder
28. februar 2006 - 20:30 #6
Eller tæller den bare $a+1 ?
Avatar billede zhx Nybegynder
28. februar 2006 - 20:30 #7
Men læg lige et svar :=)
Avatar billede coderdk Praktikant
28. februar 2006 - 20:39 #8
$a = 5;
$a++; // $a er nu 6
$a += 5; // $a er nu 11

Ingen point til mig, tak :)
Avatar billede hmortensen Nybegynder
28. februar 2006 - 21:28 #9
Dette kan også skrives sammen:
print $a;
$a++;

print $a++;

Her vil variablen udskrives, og bagefter vil der lægges en til. Man kan også skrive
print ++$a;
Her vil der blive lagt en til først, og bagefter udskrivet den nye værdi.
Avatar billede challenge Praktikant
28. februar 2006 - 21:29 #10
Jeg mener ikke at det er helt korrekt...

$a = 5;

echo $a++; //Udskriver stadig 5
echo $a; //Udskriver nu 6

Hvis vi stadig siger at:

$a = 5;

Så vil dette give:

echo ++$a; //Udskriver 6


Dvs. sættes ++ foran variablen udføres udregningen og udskrives.
Sættes ++ efter variablen udskrives variablen (hér 5), og derefter udregningen (vil altså ikke vises på denne echo, men først hvis den echoes derefter.)

$a++ er derfor IKKE det samme som $a++

Forskellen ligger i, at variablen bruges som navnet siger - Den er variabel. Først har du værdien 5, men når du skriver $a++ er værdien herefter 6.
Avatar billede challenge Praktikant
28. februar 2006 - 21:30 #11
ups...
Efter nærmere læsning af indlæg, så jeg lige at det var det samme i sagde som jeg skrev... Sorry ;)
Avatar billede zhx Nybegynder
28. februar 2006 - 22:11 #12
Okay, dvs. at det betyder: $a = 5 // 1. $a++ = 5    2. $a++ = 6    3. $a++ = 7 osv. ?
Avatar billede zhx Nybegynder
28. februar 2006 - 22:12 #13
Smid et svar dem der vil have for det...
Avatar billede webudvikleren Nybegynder
28. februar 2006 - 22:28 #14
<?php
$start = 192;
print $start++;
?>
udskriver 193

<?php
$start = 1923;
print $start--;
?>
udskriver 1922
Avatar billede hmortensen Nybegynder
28. februar 2006 - 22:28 #15
$a = 5;

$a++;

echo $a; //6

------------

$a = 5;

echo $a++; //5

echo $a; //6
Avatar billede hmortensen Nybegynder
28. februar 2006 - 22:30 #16
webudvikleren, det er jo lige nøjagtig det der IKKE sker. Den "gamle" værdi vil blive uskrevet, og derefter vil værdien blive forøget/formindsket med en.

Resultat fra din kode vil være:
192
1923
Avatar billede webudvikleren Nybegynder
28. februar 2006 - 22:34 #17
*doh* det rigtigt nok. Beklager
Avatar billede challenge Praktikant
28. februar 2006 - 22:48 #18
hmortensen,
Her:

$a = 5;

$a++;

echo $a; //6

I stedet for at skrive $a++; og derefter udskrive den, kan du jo bare sætte ++ foran $a (++$a), så sparer du et par linier... (Og bytes, vel?)
Avatar billede hmortensen Nybegynder
28. februar 2006 - 22:50 #19
Ja, sådan har jeg jo også skrevet det længere oppe...

Skrev det sådan for at spørger ikke var i tvivl om virkemåden.
Avatar billede challenge Praktikant
28. februar 2006 - 22:51 #20
Det er bare i orden :)
Avatar billede jarret Nybegynder
01. marts 2006 - 15:46 #21
zhx nej ikke helt. du må ikke lade dig forvirre af at echo $a++ udskriver 5 (hvis $ er sat til 5) på linien bliver $a bliver sat til 6 MEN bagefter $ er udskrævet.

som hmortensen skriver:
$a = 5;

echo $a++; - udskriver 5 og udføre oprationen + 1 lige bagefter nu er $a = 6

så:

echo $a; //6

hvis du sætter ++ før $a udføres regneoprationen før udskriften....
Avatar billede zhx Nybegynder
01. marts 2006 - 18:06 #22
okay jeg er helt med
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester