[PHP] controle op getallen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben op zoek naar een php functie waarmee ik een variable kan controlen op een bepaalde getallen waarde tussen een minimum en een maximum.

Ik kan dit natuurlijk doen met een if statement. Maar ik vraag mij af of hier ook een speciale functie voor is waarin ik een string int kan invoeren, een min. en een max.?

Acties:
  • 0 Henk 'm!

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Euh, dit is precies waar if statements voor uitgevonden zijn.

All my posts are provided as-is. They come with NO WARRANTY at all.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Precies, maar dan krijg ik al snel het volgende:

PHP:
1
2
3
<?php
if($jaar <= 1970 OR $jaar => 2037) { /*blaat*/ }
?>


Mooier is natuurlijk om daar een functie voor te gebruiken die daarvoor bestemt is.

Acties:
  • 0 Henk 'm!

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Verwijderd schreef op maandag 22 juni 2009 @ 02:03:
Precies, maar dan krijg ik al snel het volgende:

PHP:
1
2
3
<?php
if($jaar <= 1970 OR $jaar => 2037) { /*blaat*/ }
?>


Mooier is natuurlijk om daar een functie voor te gebruiken die daarvoor bestemt is.
Die if in een functie proppen zou ik niet direct mooier willen noemen.

All my posts are provided as-is. They come with NO WARRANTY at all.


Acties:
  • 0 Henk 'm!

  • GBCHEATER
  • Registratie: Juni 2003
  • Laatst online: 17-09-2024
Waarom wil je precies een string in kunnen voeren? Als je een getal verwacht is dit snel genoeg omgezet, al helemaal in php.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
GBCHEATER schreef op maandag 22 juni 2009 @ 02:05:
Waarom wil je precies een string in kunnen voeren? Als je een getal verwacht is dit snel genoeg omgezet, al helemaal in php.
Sorry, ik bedoelde een int.

Acties:
  • 0 Henk 'm!

Verwijderd

In SQL heb je daar "between" voor, echter is jouw voorbeeld prima toch?

Acties:
  • 0 Henk 'm!

  • Patriot
  • Registratie: December 2004
  • Laatst online: 16-09 13:49

Patriot

Fulltime #whatpulsert

Er is (afaik) geen functie die speciaal gemaakt is voor dit probleem. Het is natuurlijk wel héél makkelijk zelf te maken, hoewel dat wat mij betreft niet aan te raden valt. Je maakt je script dan veel complexer dan nodig, en als je dat te vaak doet loop je al snel in de soep als er eens iets fout gaat.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
idd. De controle komt ook maar 1 keer voor.
Ik heb het wel gewoon werkend met if statements enzow. Maar dacht dat er wellicht nog een mooie funtie voor zou zijn.

Bedankt in ieder geval...

Acties:
  • 0 Henk 'm!

  • krvabo
  • Registratie: Januari 2003
  • Laatst online: 19-09 22:02

krvabo

MATERIALISE!

Verwijderd schreef op maandag 22 juni 2009 @ 02:03:
Precies, maar dan krijg ik al snel het volgende:

PHP:
1
2
3
<?php
if($jaar <= 1970 OR $jaar => 2037) { /*blaat*/ }
?>


Mooier is natuurlijk om daar een functie voor te gebruiken die daarvoor bestemt is.
PHP:
1
2
3
4
5
6
7
8
9
10
<?
function inBetween($key, $min, $max) {
  if(($key < $min) || ($key > $max)) { return false; }
  return true;
}

if (!inBetween($jaar, 1970, 2037)) {
  print 'ongeldig';
}
?>


Jup veel overzichtelijker :P

Pong is probably the best designed shooter in the world.
It's the only one that is made so that if you camp, you die.


Acties:
  • 0 Henk 'm!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 21-08 11:20
krvabo schreef op maandag 22 juni 2009 @ 03:06:
[...]

PHP:
1
2
3
4
5
6
7
8
9
10
<?
function inBetween($key, $min, $max) {
  if(($key < $min) || ($key > $max)) { return false; }
  return true;
}

if (!inBetween($jaar, 1970, 2037)) {
  print 'ongeldig';
}
?>


Jup veel overzichtelijker :P
Dat kan korter!
PHP:
1
2
3
function inBetween($key, $min, $max) {
  return (($key < $min) || ($key > $max));
}


;)

We are shaping the future


Acties:
  • 0 Henk 'm!

  • krvabo
  • Registratie: Januari 2003
  • Laatst online: 19-09 22:02

krvabo

MATERIALISE!

Het ging me niet om de kortheid ;)
Aangezien de TS iets basics vraagt wilde ik het niet te moeilijk maken..

En je functie moet precies het tegenovergestelde returnen :P

Pong is probably the best designed shooter in the world.
It's the only one that is made so that if you camp, you die.


Acties:
  • 0 Henk 'm!

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 15-09 18:24

dusty

Celebrate Life!

En uiteraard ook even controleren of het wel een getalletje is
PHP:
1
2
3
if (is_int($value)) {
// Blah
}

Anders kan men 1999.444 opgeven en dan voldoet het eraan terwijl het toch echt geen integer is.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Acties:
  • 0 Henk 'm!

  • Manuel
  • Registratie: Maart 2008
  • Laatst online: 19-09 11:12
dusty schreef op maandag 22 juni 2009 @ 05:54:
En uiteraard ook even controleren of het wel een getalletje is
PHP:
1
2
3
if (is_int($value)) {
// Blah
}

Anders kan men 1999.444 opgeven en dan voldoet het eraan terwijl het toch echt geen integer is.
Dan kan je toch net zo goed:
PHP:
1
2
3
if((int)$value) {
        //Blaat
}

gebruiken?
(int) geeft ook aan dat het getal een getal moet zijn :)

Acties:
  • 0 Henk 'm!

  • Patriot
  • Registratie: December 2004
  • Laatst online: 16-09 13:49

Patriot

Fulltime #whatpulsert

Manueltje22 schreef op maandag 22 juni 2009 @ 11:45:
[...]


Dan kan je toch net zo goed:
PHP:
1
2
3
if((int)$value) {
        //Blaat
}

gebruiken?
(int) geeft ook aan dat het getal een getal moet zijn :)
Nee, dat doet héél iets anders. Dat convert eerst naar int, en kijkt dan of die hoger is dan 0. In de praktijk zal "123blaat" ook als int gezien worden, terwijl het een string is, geen int.

EDIT:
krvabo schreef op maandag 22 juni 2009 @ 05:02:
En je functie moet precies het tegenovergestelde returnen :P
Niet als je uitgaat van de tweede reply :+

[ Voor 19% gewijzigd door Patriot op 22-06-2009 11:56 ]


Acties:
  • 0 Henk 'm!

  • Manuel
  • Registratie: Maart 2008
  • Laatst online: 19-09 11:12
Patriot schreef op maandag 22 juni 2009 @ 11:54:
[...]


Nee, dat doet héél iets anders. Dat convert eerst naar int, en kijkt dan of die hoger is dan 0. In de praktijk zal "123blaat" ook als int gezien worden, terwijl het een string is, geen int.
Alles wat uit een form komt is een string:
http://www.weberdev.com/Manuals/PHP/function.is-int.html
Note: To test if a variable is a number or a numeric string (such as form input, which is always a string), you must use is_numeric().
Plus ik dacht dat (int) eigenlijk hetzelfde was, waarom zou het anders in PHP zitten :\

Acties:
  • 0 Henk 'm!

  • Patriot
  • Registratie: December 2004
  • Laatst online: 16-09 13:49

Patriot

Fulltime #whatpulsert

Manueltje22 schreef op maandag 22 juni 2009 @ 12:34:
[...]


Alles wat uit een form komt is een string:
Ja, én? Die parameter hoeft toch niet per sé uit een formulier te komen? :P
[...]


Plus ik dacht dat (int) eigenlijk hetzelfde was, waarom zou het anders in PHP zitten :\
is_int() is om te kijken of een bepaalde variabele een integer bevat, (int) is een cast, je zegt daarbij: maak van dat wat in deze variabele staat een integer. Dat zijn twee heel erg verschillende dingen dus.

Acties:
  • 0 Henk 'm!

Verwijderd

Alex) schreef op maandag 22 juni 2009 @ 03:17:
[...]

Dat kan korter!
PHP:
1
2
3
function inBetween($key, $min, $max) {
  return (($key < $min) || ($key > $max));
}


;)
Dat kan beter!
PHP:
1
2
3
function inBetween($key, $min, $max) {
  return (($key >= $min) && ($key <= $max));
}


Jouw functie deed precies het tegenovergestelde... False als je het goed is, en true als het fout is. :P

Acties:
  • 0 Henk 'm!

  • Manuel
  • Registratie: Maart 2008
  • Laatst online: 19-09 11:12
Patriot schreef op maandag 22 juni 2009 @ 14:37:
[...]


Ja, én? Die parameter hoeft toch niet per sé uit een formulier te komen? :P


[...]


is_int() is om te kijken of een bepaalde variabele een integer bevat, (int) is een cast, je zegt daarbij: maak van dat wat in deze variabele staat een integer. Dat zijn twee heel erg verschillende dingen dus.
Wat betreft je eerste antwoord, heb je inderdaad gelijk in. Meestal is het namelijk wel zo dat er iets uit een form komt dat moet worden gevalideerd ^^

En wat betreft je 2e antwoord, dankje daarvoor, weer wat bijgeleerd :)

Acties:
  • 0 Henk 'm!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 21-08 11:20
Verwijderd schreef op maandag 22 juni 2009 @ 17:29:
[...]


Dat kan beter!
PHP:
1
2
3
function inBetween($key, $min, $max) {
  return (($key >= $min) && ($key <= $max));
}


Jouw functie deed precies het tegenovergestelde... False als je het goed is, en true als het fout is. :P
Ohja. Maar het was laat :+

We are shaping the future

Pagina: 1