YapfHoofdpagina | Info | Hulp | FAQ (veelgestelde vragen) | Speciale pagina's | Aanmelden


Printervriendelijke versie | Voorbehoud | Privacybeleid

Controle op gehele getallen

Uit Yapf

Vooraf, welke toepassing?

Er zijn meerdere redenen waarom je zou kunnen willen weten of iets een geheel getal is. Welk doel je hebt bepaalt welke methode je moet gebruiken omdat elke methode zijn voor- en nadelen heeft.

Controleren of (formulier)invoer wel een geheel getal is.

Om te zien of invoer, bijvoorbeeld een getal uit een formulier, wel een geheel getal is gebruik je ctype_digit(). Deze functie controleert of een string(!) in PHP alleen cijfers bevat. De variabele die je aan ctype_digit() aanbiedt moet dus van het string type zijn. Als je een integer aanbied krijgt je altijd false, ookal is een integer een geheel getal. Dat omzetten naar een string gaat het eenvoudigst via een typecast, "(string)" voor de variabele.


<?php
// Typecast $variabele met (string)
if (ctype_digit( (string) $variabele))
{
    echo 'het is een geheel getal';
}
else
{
    echo 'het is geen geheel getal';
}
?>

Om-en-om wisselen

Een andere toepassing waarvoor je zou kunnen willen controleren of iets een geheel getal is is om bijvoorbeeld tijdens het presenteren van resultaten elke 5e rij een kleurtje te geven. De theorie is dan: rijnummer /5 = geheel getal. Deze theorie is wiskundig correct maar daar is al een functie voor in PHP: de modulo, het % teken. Dit si een wiskundige berekening die aangeeft wat de rest is als je het ene getal deelt door het andere. 4 gedeeld door 5 geeft rest nul, 6 gedeeld door 5 geeft rest 1, want 5 pas 1x in 6 en dan blijft er nog 1 over.

<?php
echo 5%5;
echo 4%5;
echo 6%5;
?>

Als de modulo een rest=0 oplevert past het ene getal een geheel aantal keer in het ander, dan he je dus het 'de zoveelste rij' te pakken.

Hoe niet?

Een veelgemaakte denkfout is om is_numeric() te gebruiken, omdat de naam ten onrechte wordt gelezen als 'is een geheel getal', maar de naam getekent niets meer dan 'is een getal', niet een 'geheel' getal. Het getal 1,8 is ook numeric, maar bepaald geen geheel getal.

Teruggeplaatst van "http://www.yapf.net/index.php/Controle_op_gehele_getallen"

Deze pagina is 450 maal bekeken. Deze pagina is het laatst bewerkt op 21 dec 2008 om 12:26.


Zoeken

Bladeren
Hoofdpagina
Gebruikersportaal
In het nieuws
Recente wijzigingen
Willekeurige pagina
Hulp
Bewerken
Brontekst bekijken
Hulp bij bewerken
Paginaopties
Overlegpagina
Opmerking toevoegen
Printervriendelijke versie
Pagina-informatie
Paginageschiedenis
Verwijzingen naar deze pagina
Verwante wijzigingen
Mijn pagina's
Aanmelden / registreren
Speciale pagina’s
Nieuwe pagina's
Bestandslijst
Statistieken
Foutrapporten
Meer …