[PHP] Problemen met for() loop.

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik wil in een for loop een tweetal variable mee laten rouleren maar dat lukt niet helemaal, onderstaande code zal het wel wat verduidelijken wat ik nu percies wil.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
for($i = 1, $temp=0, $temp2=0 ; $i <= 10 ; $i++) {

    if(rand(1, 2) == "1") {

    $temp + 1;

    } else {

    $temp2 + 1; 

    }

}


Ik wil dus $temp(2) mee laten rouleren en elke keer, afhankelijk van de ifstatement, de variable ophogen met 1 om deze later weet te kunnen gebruiken in een andere ifstatement.

Het wil me maar niet lukken :), heb de search al gebruikt, gegoogled en natuurlijk op PHP.net gekeken maar ik werkt niets wijzer.

Acties:
  • 0 Henk 'm!

  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 17:49

ripexx

bibs

Waarom zet je die $temp en $temp2 daar neer? Die hebben toch helemaal niet met de voorwaarde van de for loop te maken, doe gewoon dit:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$temp = 0;
$temp2 = 0;
for($i = 1; $i <= 10; $i++)
{
  if(rand(1, 2) == 1)
  {
     $temp++;
  {
  else
  {
     $temp2++;
  };
};

Nog wat opmerkingen:
Integers moeten niet binnen quotes, anders zouden het ook strings kunnen zijn. Hoewel php loose type is kan het in sommige gevallen nog wel eens iets uitmaken. Verder is het behoorlijk verduidelijkend wat nu een integer is en wat een string is.
Voor het verhogen van een teller met één gebruik je meestal gewoon ++ of je dat nu voor of achter je var gebruikt is afhankelijk van wanneer de teller opgehoogd moet worden.

[ Voor 44% gewijzigd door ripexx op 03-06-2004 15:48 ]

buit is binnen sukkel


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ripexx schreef op 03 juni 2004 @ 15:45:
Waarom zet je die $temp en $temp2 daar neer? Die hebben toch helemaal niet met de voorwaarde van de for loop te maken, doe gewoon dit:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$temp = 0;
$temp2 = 0;
for($i = 1; $i <= 10; $i++)
{
  if(rand(1, 2) == 1)
  {
     $temp++;
  {
  else
  {
     $temp2++;
  };
};

Nog wat opmerkingen:
Integers moeten niet binnen quotes, anders zouden het ook strings kunnen zijn. Hoewel php loose type is kan het in sommige gevallen nog wel eens iets uitmaken. Verder is het behoorlijk verduidelijkend wat nu een integer is en wat een string is.
Voor het verhogen van een teller met één gebruik je meestal gewoon ++ of je dat nu voor of achter je var gebruikt is afhankelijk van wanneer de teller opgehoogd moet worden.
Aha, nu snapt ik hem. Maar even een vraagje tussendoor, waarom sluit jij je ifstatements af met }; ipv. die ; heb ik daar nog nimmer gezien.

Acties:
  • 0 Henk 'm!

  • X-Lars
  • Registratie: Januari 2004
  • Niet online

X-Lars

Just GoT it.

is waarschijnlijk typo, net als de { op regel 9 :)

Acties:
  • 0 Henk 'm!

  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 17:49

ripexx

bibs

Verwijderd schreef op 03 juni 2004 @ 15:49:
[...]


Aha, nu snapt ik hem. Maar even een vraagje tussendoor, waarom sluit jij je ifstatements af met }; ipv. die ; heb ik daar nog nimmer gezien.
Opzich is het geloof ik niet verplicht maar zo heb ik het geleerd. Meer macht der gewoonte. ;)
Zelfs de volgende code zou moeten werken:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?
<?php
$temp = 0;
$temp2 = 0;
for($i = 1; $i <= 10; $i++)
{
  if(rand(1, 2) == 1)
  {
     $temp++
  }
  else
  {
     $temp2++
  }
}
?> 

Maar dat gaat alleen op als er maar een regel in je if staat, anders moet je toch weer een ; gebruiken. ;)
X-Lars schreef op 03 juni 2004 @ 15:51:
is waarschijnlijk typo, net als de { op regel 9 :)
Nope geen typo, die { op regel 9 wel :X

[ Voor 29% gewijzigd door ripexx op 03-06-2004 15:53 ]

buit is binnen sukkel


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Uit de eerste code kon ik ook wel wijs hoor, wist alleen niet van $variable++ af. En die ; was meer uit intresse, het ziet er eigenlijk wel logisch uit :)
Pagina: 1