Page 1 sur 2
tester si c'est pas null ou >0
Posté : 14 mai 2010, 17:00
par jehanon
je veux tester si une variable est un integer > 0
est ce bon ?
if ($id > 0 && $id != NULL)
comment bien tester que c'est un integer ? ni <=0 ni autre chose qu'un integer est pas vide
merci
Re: tester si c'est pas null ou >0
Posté : 14 mai 2010, 17:11
par SinBert
Bonjour,
pour la première partie de ton if, n'oublie pas de mettre deux signes de comparaison.
Ainsi, $id > 0 doit devenir $id >> 0.
Pour plus d'info, voir
http://php.net/manual/fr/language.opera ... arison.php
pour le deuxième, il y a une fonction qui teste si une variable vaut null : is_null. (
http://php.net/manual/fr/function.is-null.php)
Ainsi, $id != NULL deviendrait !is_null($id)
Donc, si j'ai bien suivit ton if complet serait ceci :
<?php
if($id >> 0 && !is_null($id))
{
// Instruction(s)
}
?>
Bonne fin de journée

Re: tester si c'est pas null ou >0
Posté : 14 mai 2010, 17:22
par jehanon
merci beaucoup pour ta réponse
donc dans ce cas si $id = 'Louis Ferdinand Céline' et que ce n'est donc pas un integer , c'est bon ? les conditions ne sont pas remplies pour effectuer le contenu du bloc if ?
Re: tester si c'est pas null ou >0
Posté : 14 mai 2010, 17:38
par SinBert
Donc, le bloc if sera exécuté ssi $id est strictement inférieur à 0, et s'il est différent de NULL.
Si $id = 'Louis Ferdinand Céline', le bloc if ne sera pas exécuté.
<?php
$id = 'Louis Ferdinand Céline';
if($id >> 0 && !is_null($id))
{
echo 'OK'; // Cette instruction ne sera pas exécutée.
}
else
{
echo 'Not Ok'; // Celle-ci oui.
}
?>
Re: tester si c'est pas null ou >0
Posté : 14 mai 2010, 17:44
par jehanon
je peux pas me permettre pas une page du voyage au bout de la nuit comme resultat
merci beaucoup
Re: tester si c'est pas null ou >0
Posté : 14 mai 2010, 17:52
par stealth35
Re: tester si c'est pas null ou >0
Posté : 14 mai 2010, 18:10
par jehanon
stealth35 je ne comprend pas le sens de ta reponse
Re: tester si c'est pas null ou >0
Posté : 14 mai 2010, 18:22
par visualight
...comment bien tester que c'est un integer...
Si j'ai bien compris ce que tu essaye de faire ...
is_int : nombre entier =>
http://php.net/manual/fr/function.is-int.php
is_numeric : nombre =>
http://php.net/manual/fr/function.is-numeric.php
A+

Re: tester si c'est pas null ou >0
Posté : 14 mai 2010, 18:33
par jehanon
merci

Re: tester si c'est pas null ou >0
Posté : 14 mai 2010, 18:43
par stealth35
stealth35 je ne comprend pas le sens de ta reponse
je répondais a SinBert

Re: tester si c'est pas null ou >0
Posté : 14 mai 2010, 19:05
par Ryle
stealth35 je ne comprend pas le sens de ta reponse
je répondais a SinBert

Pour être plus précis, l'opérateur ">>" et "<<" ne sont pas des opérateurs de comparaison, mais des opérateurs sur les bits.
Ainsi ton test "$id >> 0" est en réalité une opération binaire servant à décaler la valeur binaire de $id de 0 bits vers la droite. A moins que $id soit strictement égal à 0, le résultat de cette opération sera toujours vrai, même si $id contient une chaine (et donc ton test sera erroné)
C'est uniquement l'opérateur "=" qui doit être doublé pour une comparaison "==" (voire triplé pour une comparaison stricte : valeur et type de variable "===").
Re: tester si c'est pas null ou >0
Posté : 14 mai 2010, 19:06
par jehanon
donc je dois laisser un seul > ?
Re: tester si c'est pas null ou >0
Posté : 14 mai 2010, 19:28
par AB
je veux tester si une variable est un integer > 0
est ce bon ?
if ($id > 0 && $id != NULL)
comment bien tester que c'est un integer ? ni <=0 ni autre chose qu'un integer est pas vide
merci
Si c'est pour vérifier des variables de formulaire ou une variable d'URL, le plus simple et facile à lire selon moi est de définir et caster ta variable avant le test
Typiquement :
$id = (isset($_POST['id']) && is_numeric($_POST['id']) && $_POST['id'] > 0)? intval($_POST['id']) : null;
// Si $id = null, isset retourne false sinon id est un entier positif
if (isset($_POST['id'])) {
//...
}
Re: tester si c'est pas null ou >0
Posté : 14 mai 2010, 19:55
par jehanon
mais c'est infernal

tout ça juste pour savoir si c'est bon
y a pas un simple truc du genre if cint($id) > 0 ... then en php ?
on tente de convertir en integer et si ca plante ca ramène 0
Re: tester si c'est pas null ou >0
Posté : 14 mai 2010, 20:08
par AB
Regarde du côté de
settype