Toon posts:

[php] is_integer

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik heb al wat lopen zoeken
en op het forum en op de php site
maar ik kome er niet echt uit
ik wil de vaariabele &bnr controleren of het een integer is
ik gebrui daar voro deze regel
PHP:
1
2
3
<?
 $help=is_integer($bnr);
?>

maar dit wil niet
wat doe ik fout ?

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

tja wat zou is_integer() returnen?
zal wel een bool zijn denk ik?

Doet iets met Cloud (MS/IBM)


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

En is_numeric ?
Aangezien het voor is_integer ook niet een "string die een getal/integer voorstelt" accepteert.

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

je doet verder niets met $help ?
waar staat het if-statement?

Verwijderd

Op maandag 07 januari 2002 13:29 schreef roadrunner het volgende:
ik heb al wat lopen zoeken
en op het forum en op de php site
maar ik kome er niet echt uit
ik wil de vaariabele &bnr controleren of het een integer is
ik gebrui daar voro deze regel
PHP:
1
2
3
<?
 $help=is_integer($bnr);
?>

maar dit wil niet
wat doe ik fout ?
Helemaal verkeerd: ik neem aan dat dit een gesubmittete string is, dan kan het zonder typecasting nooit een intenger zijn:
Ik zou iets in de trant van dit doen:
PHP:
1
2
3
4
5
6
7
8
<?
if(is_numeric($bnr))
{
//doe iets...
} else {
//doe iets anders...
}
?>

  • Lurge
  • Registratie: Maart 2000
  • Niet online

Lurge

ActueleWind

wat wil er niet ?
[late reply] :z

ActueleWind


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

http://www.php.net/manual/en/function.is-numeric.php
bool is_numeric (mixed var)
http://www.php.net/manual/en/function.is-int.php
bool is_int (mixed var)
zo plezier ermee

Doet iets met Cloud (MS/IBM)


Verwijderd

Topicstarter
verder op gebruik ik het $help in een ifje
maar ik ben nu de functi3e is_integer aan het testen of het werkt
maar nee :(
help geeft geen waarde terug
help blijft leeg
ook al heeft bnr de waarde 5

Verwijderd

Topicstarter
met
$help=is_integer($bnr)
en $bnr =5 heeft help de waarde NULL
als $bnr vervang door 5 dan doet ie het wel
waarom wel met een harde waarde en niet met een var ?

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

dan zal ik de titel wel editten als ACM te lui is ;)

  • vinnux
  • Registratie: Maart 2001
  • Niet online
max@uibk.ac.at
18-Aug-2001 03:39

hi !

i've been trying to convert a string passed by a web-form into a
double/int
but any of the PHP built-ins hasn't worked for me. really dunno why.
this is how i have helped myself with a number-verify function:

<?
// there is a function called "is_numeric" in PHP, so i call this
one
// "is_it_number"
// one probably does not have to initialize the variables like i do, but
// i'm used to PL/SQL requirements so ...
// this function will allow the tested string to include only
// digits and only one . (dot) or , (comma). neither of both
// can be a trailing character of the string.
// please note that we do not check here if the string is an empty string
//
function is_it_number($str_in) {
$c1 = 0;
$c2 = 0;
for ($i = 0; $i < strlen($str_in); $i++)
{
if (preg_match("/[0-9]|[.,]/", substr($str_in,$i,1))) {
;;
}
else {
$c1++;
}
if (preg_match("/[.,]/", substr($str_in,$i,1))) {
$c2++;
}
}
if ($c1 > 0 or $c2 > 1 or preg_match("/[.,]$|[ ]+/",
$str_in)) {
return (boolean) FALSE;
}
else {
return (boolean) TRUE;
}
}
?>

Verwijderd

Op maandag 07 januari 2002 13:36 schreef roadrunner het volgende:
met
$help=is_integer($bnr)
en $bnr =5 heeft help de waarde NULL
als $bnr vervang door 5 dan doet ie het wel
waarom wel met een harde waarde en niet met een var ?
Lees nou eens: is_integer() is om te kijken of een variabele een intenger is, maar jij wilt is_numeric gebruiken die kijkt of een variabele uit cijfers bestaat (deze functie matcht dus ook strings...).

Verwijderd

Topicstarter
met int_numeric doet ie het wel
met $bnr
maar dan pakt ie ook getallen achetr de komma
vandaar dat ik is_integer
maar dat wil niet echt :(

Verwijderd

is_integer() is een functie welke controleert of het type van een bepaalde variable het type 'integer' is.
code:
1
2
 if ( (*var)->type == IS_INT ) {
 }

Dit controleert nooit of de WAARDE van deze variable een
integer IS. Je zult dus inderdaad is_numeric() moeten gebruiken.

  • vinnux
  • Registratie: Maart 2001
  • Niet online
Binnen php is alles wat gepost is via een form en via bv php.php?a=h is altijd van het type text/string !

DIT IS ALTIJD ZO. Daarom doet de functie het niet

De oplossing :
PHP:
1
2
3
4
5
6
<?
if( is_int( 1 * $id  ) ) 
echo "Valid"; 
else 
echo "Invalid;"; 
?>

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Op maandag 07 januari 2002 13:36 schreef roadrunner het volgende:
met
$help=is_integer($bnr)
en $bnr =5 heeft help de waarde NULL
als $bnr vervang door 5 dan doet ie het wel
waarom wel met een harde waarde en niet met een var ?
Zuwwe nu even doen van "lezenstein" ?

De vraag is dus of $bnr "5" (string met int-waarde) is of 5 (integer).
PHP:
1
2
3
4
5
6
<?
$bnr = (int) $bnr;

if ( $bnr )
...
?>

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • vinnux
  • Registratie: Maart 2001
  • Niet online
Let er op dat het casten van text naar interger in PHP anders gaat dan bij bv Java.

LET OP :

'756hj7896' > 756
'3223h' > 3223

Verwijderd

Topicstarter
ik heb het nu zo opgelost
maak gebruik van is_numeric
en van round
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?
  $help=is_numeric($bnr);
  if ($help &amp;&amp; $wat=='toevoegen')
  {
   $help=round($bnr);
   if ($help==$bnr)
   {   
   $tbok=true;
   }
   else
   {
    echo " U heeft een ongeldig nummer in getoetst ";
   }
  }
  else
  {
   echo " U heeft een ongeldig nummer in getoetst ";
  }
?>

Verwijderd

PHP:
1
2
3
4
5
6
7
8
<?
//dit script controleert of $brn een integer is, en zoniet, wordt $brn omgezet naar een integer
if(!is_int($bnr)) //als $brn geen integer is
{
    if(!settype($brn, "integer")) echo "Er is iets mis gegaan!"; //error code wanneer het type niet juist kan worden omgezet
    else echo '$brn' . "is omgezet naar $brn"; //code wanneer $brn wel is omgezet naar een integer
}
?>

Voor reference (ten overvloedde natuurlijk :)):
http://download.php.net/manual/en/function.settype.php
http://download.php.net/manual/en/language.types.type-juggling.php
http://download.php.net/manual/en/language.types.integer.php
http://download.php.net/manual/en/language.types.php

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

vgouw:
Let er op dat het casten van text naar interger in PHP anders gaat dan bij bv Java.

LET OP :

'756hj7896' > 756
'3223h' > 3223
daarom is het juist zo handig ;)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz

Pagina: 1