Hallo,
Bij mijn if statement krijg ik op de één of andere manier telkens een true, terwijl ik dit niet kan verklaren.
Ik heb een formulier die data post. De ontvangst van de data is:
Als ik dit print, bij 7 ingevoerde tekens:
krijg ik ook gewoon 7 terug. Zoals het hoort.
Nu wil ik een paar clausules aan de data hangen:
Echter, wanneer ik de volgende clausule erbij zet, dan is de clausule altijd true:
Hoe kan dit? Ook bij strlen($contactNummer) <> 7 krijg ik altijd "leeg en/of niet numeriek" terug. Waarom?
Zelfs al cast ik de data naar int, met (int) ervoor, dan is het ook true.. Kan iemand dit verklaren?
Waarom geeft PHP niet terug: oke! terwijl ik dit wel verwacht?
Bij mijn if statement krijg ik op de één of andere manier telkens een true, terwijl ik dit niet kan verklaren.
Ik heb een formulier die data post. De ontvangst van de data is:
PHP:
1
| $contactNummer = $_POST["contactNummer"]; |
Als ik dit print, bij 7 ingevoerde tekens:
PHP:
1
| print strlen($contactNummer); |
krijg ik ook gewoon 7 terug. Zoals het hoort.
Nu wil ik een paar clausules aan de data hangen:
PHP:
1
2
3
| if(empty($contactNummer) || !is_numeric($contactNummer)){ print "leeg en/of niet numeriek"; //dit gaat goed } |
Echter, wanneer ik de volgende clausule erbij zet, dan is de clausule altijd true:
PHP:
1
2
3
4
5
6
| if(empty($contactNummer) || !is_numeric($contactNummer) || strlen($contactNummer) != 7){ print "leeg en/of niet numeriek"; } else { print "oke!"; } |
Hoe kan dit? Ook bij strlen($contactNummer) <> 7 krijg ik altijd "leeg en/of niet numeriek" terug. Waarom?
Zelfs al cast ik de data naar int, met (int) ervoor, dan is het ook true.. Kan iemand dit verklaren?
Waarom geeft PHP niet terug: oke! terwijl ik dit wel verwacht?