Jump to content


Photo

Is_int


  • Faça o login para participar
10 replies to this topic

#1 gonacts

gonacts

    "Agora eu tb tenho um Tux..." =D

  • Usuários
  • 1030 posts
  • Sexo:Não informado

Posted 18/02/2006, 08:38

pessoal, estou etndo um probleminha com essa fç do php is_int

eu to passando um valor por querystring e mandano verifica se ela eh inteira ou nao...

so q o id q vem do get pode estar recebendo "all" ou numeros...se for numero eu tenho q tratar de uma forma se for "all" eu trato de outra forma...so q qnd eu uso a fç is_int ele ta falando q o numero n eh numero, esta interpretando como string...

pq?1
"Ninguém é tão inteligente que não possa aprender e ninguém é tão burro que não possa ensinar.."
"As dúvidas engrandecem nossa sabedoria, mas não basta somente tirá-las, temos que entendê-las"

#2 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 18/02/2006, 08:45

Experimenta utilizar:
http://www.php.net/intval

Antes de passar pela função is_int().
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#3 Goku Jr

Goku Jr

    Nilson

  • Usuários
  • 3757 posts
  • Sexo:Masculino

Posted 18/02/2006, 09:40

e como fala no PHP.NET ( a fonte de consulta do Paulo Freitas :P )

is_int -- Informa se a variável é um inteiro
isso já diz tudo

faça o que o Eclesiastes disse antes de usa-la

Para leitura: http://www.php.net/m...tion.is-int.php

T+

Edição feita por: Goku Jr, 18/02/2006, 09:41.

-----------------------------------------------------------------------
PALMEIRAS - Primeiro campeão do mundo em 1951

#4 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 18/02/2006, 13:20

Pois é, se você quiser poderá utilizar:
http://www.php.net/is-numeric
http://www.php.net/ctype-digit

Daí não precisará do uso da função intval().
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#5 comunik

comunik

    Turista

  • Usuários
  • 58 posts
  • Sexo:Não informado

Posted 19/02/2006, 13:49

o que eu acho q pode estar acontecendo é isso:

$i = "2";
if (is_int($i)) {
	echo "é inteiro";
} else {
	echo "é string";
}

vai sempre retornar string com as aspas em $i.

$i = 2;
if (is_int($i)) {
	echo "é inteiro";
} else {
	echo "é string";
}

vai sempre retornar numero inteiro sem aspas
mas com:

$i = "2";
if (is_numeric($i)) {
	echo "é inteiro";
} else {
	echo "é string";
}

funciona corretamente

Edição feita por: comunik, 19/02/2006, 13:51.


#6 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 19/02/2006, 15:25

O único "problema", se é que podemos chamar de problema neste caso, é que a função is_numeric() não só aceita valores inteiros como ponto flutuante também. :ponder:

Pode-se usar a função is_int() também, mas para isto devemos definir o tipo da variável, não deixando este tipo ser definido automaticamente pelo PHP. Haveriam duas formas:
  • Type-casting

    Exemplo:
    <?php
    
    $var = (int)$_GET['anything'];
    
    ?>
  • settype()

    Exemplo:
    <?php
    
    settype($_GET['anything'], 'int');
    
    ?>
Sim, eu sei que viajei pra Marte no assunto, mas conhecimento nunca é demais. ^_^

[]’s :DAté mais

#7 gonacts

gonacts

    "Agora eu tb tenho um Tux..." =D

  • Usuários
  • 1030 posts
  • Sexo:Não informado

Posted 22/02/2006, 16:20

o problema eh q qnd vc força o conteudo ser (int) ele vai passar no is_int...

Goku Jr, eu sei q o nome da fç diz td...o problema eh q nao estou conseguindo implementa-la...tenta ai pra vc ver...

passo um ID por GET ?pagina=3 e tenta verificar direto se ele eh int:P

nao vai dar...


Eclesiastes, com o intval antes tb nao deu...

alguem mais?! :(

*****EDITADO******

O único "problema", se é que podemos chamar de problema neste caso, é que a função is_numeric() não só aceita valores inteiros como ponto flutuante também. ponder.gif


usei o numeric msm..atende as minhas necessidades.....mas queria deixar registrado q questao de um inteiro por get ser reconhecido como str...o q poderiamos fazer?! :lol:

Edição feita por: gonacts, 22/02/2006, 16:24.

"Ninguém é tão inteligente que não possa aprender e ninguém é tão burro que não possa ensinar.."
"As dúvidas engrandecem nossa sabedoria, mas não basta somente tirá-las, temos que entendê-las"

#8 helloworld

helloworld

    Novato no fórum

  • Usuários
  • 10 posts
  • Sexo:Não informado

Posted 22/02/2006, 18:15

<?php
  if ( is_numeric($_GET["teste"]) )
    print "É numérico";
  else
    print "Não é numérico";

  // arquivo.php?teste=3
  // Saída: É numérico
?>

Não é isso não? Aqui funcionou. :assobio:

#9 gonacts

gonacts

    "Agora eu tb tenho um Tux..." =D

  • Usuários
  • 1030 posts
  • Sexo:Não informado

Posted 23/02/2006, 08:28

isso q eu falei cara...assim atendeu minhas necessidades..mas is_numeric aprova float tb....

a parada eh q o is_int nao funfa fazendo desse jeito ai
"Ninguém é tão inteligente que não possa aprender e ninguém é tão burro que não possa ensinar.."
"As dúvidas engrandecem nossa sabedoria, mas não basta somente tirá-las, temos que entendê-las"

#10 Stormbringer

Stormbringer

    I'd love to stay with you all

  • Ex-Admins
  • 2927 posts
  • Sexo:Não informado
  • Localidade:Goiânia - GO
  • Interesses:Atualmente: pesquisa e desenvolvimento de web-games

Posted 23/02/2006, 08:35

hehehe... o modo "gambiarra" stormbringer iria multiplicar a variavel por 1 antes de passa-la pelo is_int()

hehehe

mas se já tá resolvido, beleza :lol:

<?php
$teste = $_GET[teste]*1;
 if ( is_int($teste) )
   print "É numérico";
 else
   print "Não é numérico";

?>


será que gera warning? nao testei... mas acho que rola


se gerar warning, ehhehe... vc verifica com is_numeric... sendo numerico vc multiplica por 1 e passa pela is_int...
gambiarra MOR!

๑۩۞۩๑Let the Carnage Begin!!๑۩۞۩๑


#11 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 23/02/2006, 10:54

isso q eu falei cara...assim atendeu minhas necessidades..mas is_numeric aprova float tb....

a parada eh q o is_int nao funfa fazendo desse jeito ai

Eu postei os 2 exemplos acima, com type-casting e settype() ... :assobio:

Storm e suas gambi ... :P

[]’s :DAté mais




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq