Hallo mede-PHP'ers,

Als oefening moet ik een string 25x uit laten voeren (string 25x onder elkaar?) Ik zie er alleen maar 1.

Mijn PHP script is als volgt, maar dit is echt goed fout:

<?php
$hamer[1]="Bang! Je slaat een spijker in het hout!<br>";
$maal = 25;
for($nr=1; $nr<25; $nr++)
{
$resultaat = $nr*$maal;
echo ($hamer[$nr]."<br>\n");
//$nr." x ".$tafel." = ".$resultaat."\n";
}
?>

Wie kan me verder op weg helpen?
$hamer[2] en hoger bestaan niet.
Logisch, jouw array heeft maar 1 element: $hamer[1]. Dat is dus de enige die binnen de for-lus kan worden gevonden en dus worden geechoot.
Je print nu $hamer[1], $hamer[2], $hamer[3] etc. Maar alleen $hamer[1] bestaat.

<?php
$hamer = "Blabla";

for($nr = 1; $nr < 25; $nr++)
{
echo $hamer;
}
?>
Zet dit bovenin je script.
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);

// rest
?>
Bedankt voor alle reacties, maar ik heb het antwoord al gevonden van Stevens Guy en Arjan Kapteijn. Bedankt voor het goede antwoord!

<?php
$hamer = "Bang! Je slaat een spijker in het hout!<br />" ;

for($nr=1; $nr<=25; $nr++)
{
echo ($hamer);

}
?>

Bleek toch een stuk simpeler te zijn dan ik dacht :P
Tjonge jonge jongen.
Wat een gedoe... nooit gehoord van str_repeat()?

<?php
echo str_repeat("Hamer<br>", 25);
?>
@ eddy, gezien die regel die hij geuncomment heeft wilt hij waarschijnlijk de tafels uit gaan rekenen, dan werkt een str_repeat niet meer :).
Waarom niet met while()?

<?php
$i = 1;
$max = 25; // AANTAL KEER
while($i <= $max) {
// ACTIE
$i++; // + 1 BIJ TELLEN
}
?>
Omdat een while precies hetzelfde is als een for als je het hier doet, maar een for vind ik dan effectiever. Ik weet niet of daar nog snelheidsverschil in zit.
Paradox™ schreef op 05.03.2009 22:51
Waarom niet met while()


Een for is daarvoor bedacht, een while zal prima werken. Toch moet je oppassen, in de while moet je 'handmatig' (dwz je moet er extra aan denken) de i++ doen, kortom die vergeet je snel en dat levert een oneindige loop op en dat is leuk debuggen.

Reageren