Hallo,

Ik ben bezig PHP onder de knie te krijgen en gebruik daarvoor het boekwerkje Basiscursus PHP6 van academic service.
Daarin een script om de werking van for - endfor te begrijpen.

Met include een voor- en een na scriptje, maar het gaat erom wat daar tussen zit.
De echo Worp begint in de browser met de integer 0, maar ik wil de teller Worp met 1 t/m 3 laten werken.
Wie kan mij helpen, alvast dank.

<?php
Dan snap je [php]for[/php] zeker ook niet?
Ik mis bij mijn vràag het scripje, doe iets verkeert zeker, jammer.

Jouw link for even bekeken en ja hoor, in tegenstelling tot wat in het boek staat in de for () lus, krijgt de eerste variabele, van de drie, de waarde 1 mee.
Bovendien moet < vervangen worden door <=

In het voorbeeld van het boekje staat een 0 notitie, daarom redeneerde ik zo:


$worpen =0; (1e term)
$worpen <= $maxworpen; (2e term) zolang $worpen kleiner of gelijk
aan $maxworpen, dan
$worpen++ (3e term), dus bij de eerste loop is $Worp al
meteen 0+1 = 1.

En dat snap ik dus niet, Worp begint dan met 0.


Scriptje uit het boekje:

$cijfers = array('een', 'twee', 'drie', 'vier', 'vijf', 'zes');
$maxworpen = 3;

for ( $worpen = 0; $worpen < $maxworpen; $worpen++):
$ogen = mt_rand (1, 6);
$totaal += $ogen;
echo 'Worp ' . $worpen. ': ' .$cijfers[$ogen-1]. '<br />';
endfor;

echo 'Totaalscore: ' .$totaal;
Computers zien de 0 als het eerste getal. In de array $cijfers zal de waarde 'een' ook de key 0 hebben. Zoals je terecht opmerkt, komt uit de code:
Worp 0: a
Worp 1: b
Worp 2: c
Totaalscore: (a+b+c)


Ook wil ik even zeggen dat for en endfor; ook anders geschreven kunnen worden en wel tussen accolades. Dit vind ik (en velen voor mij) overzichtelijker.
<?php
$cijfers = array('een', 'twee', 'drie', 'vier', 'vijf', 'zes');
$maxworpen = 3;

for ( $worpen = 0; $worpen < $maxworpen; $worpen++)
{
$ogen = mt_rand (1, 6);
$totaal += $ogen;
echo 'Worp ' . $worpen. ': ' .$cijfers[$ogen-1]. '<br />';
}

echo 'Totaalscore: ' .$totaal;
?>
Mark L op 14/09/2010 19:56:12

Ook wil ik even zeggen dat for en endfor; ook anders geschreven kunnen worden en wel tussen accolades. Dit vind ik (en velen voor mij) overzichtelijker.


Als je grotere dingen maakt, kan deze manier wel handig zijn. Je weet dan tenminste waar alles voor staat.


<?php
					}
				}
			}
		}
	}
}

					endif;
				endfor;
			endif;
		endwhile;
	endif;
endif;
?>
Bedankt voor het antwoord Mark.

Elke oefening noteer ik met Word in een map met een eigen interpretatie.
Het "accolade" scriptje zal ik zeker meenemen.

Reageren