Versio

script for - endfor werkt niet goed.

Overzicht Reageren

Cees vdL

Cees vdL

14/09/2010 18:41:02
Quote Anchor link
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.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php
Gewijzigd op 14/09/2010 19:02:58 door Cees vdL
 
PHP hulp

PHP hulp

25/05/2012 15:16:42
Gesponsorde koppelingen:
BHosted Hosting al vanaf € 1,- per maand

Controleer nu gratis jouw domeinnaam:

  
 
Karl Karl

Karl Karl

14/09/2010 19:02:07
Quote Anchor link
Dan snap je for zeker ook niet?
 
Cees vdL

Cees vdL

14/09/2010 19:31:28
Quote Anchor link
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;
 
Mark L

Mark L

14/09/2010 19:56:12
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
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.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?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;
?>
Gewijzigd op 14/09/2010 19:57:00 door Mark L
 
Yea Rupie

Yea Rupie

14/09/2010 21:00:41
Quote Anchor link
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.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
                    }
                }
            }
        }
    }
}

                    endif;

                endfor;
            endif;
        endwhile;
    endif;
endif;

?>
 
Cees vdL

Cees vdL

14/09/2010 21:44:23
Quote Anchor link
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.
 



Overzicht Reageren

Get Adobe Flash player