| auteur : Cyberzoide | La fonction gettype($var) retourne une chaîne de caractères contenant le nom du type de la variable $var.
Ce type peut être entier (integer), flottant (double), tableau (array), objet (object), booléen (boolean), chaîne de caractères (string), fonction définie par l'utilisateur (user function), ressource (ressource) ou inconnu (unknown type). if (gettype(12. 5) = = ' double ' ) {
echo " c ' est un flottant " ;
}
|
Il existe aussi tout un lot d'autres fonctions qui testent si une variable est d'un type donné, en retournant TRUE ou FALSE :
- is_array() pour un tableau.
- is_bool() pour un booléen.
- is_double(), is_float() et is_real() pour un flottant.
- is_int(), is_integer() et is_long() pour un entier.
- is_numeric() et is_scalar() pour un nombre entier ou flottant.
- is_object() pour un objet.
- is_resource() pour une ressource (par exemple un lien vers une base de données).
- is_string() pour une chaîne de caractères.
|
lien : Comment vérifier le type d'une chaîne ?
|
| auteurs : Eusebius, Jérôme | Vous avez écrit ce qui suit et l'affichage n'est pas celui attendu
$ variable = ' valeur ' ;
echo ' chaine $variable ' ;
|
Vous attendiez chaine valeur. L'explication est très simple : les variables ne sont pas interprétées dans les chaines entre simple quotes.
Vous avez donc trois solutions : 1) La concaténation
$ variable = ' valeur ' ;
echo ' chaine ' . $ variable ;
|
2) Utiliser des doubles quotes (guillemets). Les variables sont interprétées dans les chaînes entre double quotes, mais ce n'est pas recommandé d'un point de vue performances. Si l'on utilise quand même des variables dans des chaînes entre double quotes, les entrées de tableaux doivent être entourés d'accolades et il n'est pas possible d'utiliser les membres d'objets ($obj->machin).
$ variable = ' valeur ' ;
echo " chaine $ variable " ;
$ tableau [ ' cle ' ] = ' valeur2 ' ;
echo " test { $ tableau [ ' cle ' ] } " ;
|
3) La troisième solution est l'utilisation de la syntaxe HereDoc
$ variable = ' valeur ' ;
echo <<<identifiant
chaine $ variable
identifiant ;
|
|
| auteur : Julp | Une variable statique est uniquement utilisée dans le corps des fonctions. Elle n'est pas accessible à l'extérieur de la fonction où elle est déclarée. Static nous vient du C et signifie que la valeur de la variable conserve après les appels de la fonction sa valeur puisque l'emplacement mémoire alloué à cette variable est constant. Ce qui n'est pas le cas en temps normal avec les variables puisqu'elles sont détruites à la fin de l'exécution de la fonction (soit lorsque la fin du bloc de la fonction a été atteint, soit lorsque return est rencontré).
Exemple :
function compteur() {
static $ compteur = 0;
$ compteur + + ;
echo " Nombre d ' appels à la fonction : " . $ compteur ;
}
|
|
| auteur : Alexandre_T | Le code suivant vous permet de récupérer facilement les variables sous forme de tableau et constitue également un débuggueur.
echo ' <TABLE BORDER=0 CELLPADDING=3 CELLSPACING=1 WIDTH=600 BGCOLOR="#000000" ALIGN="CENTER"> ' ;
echo ' <tr bgcolor="#9999CC"><th colspan="2">Variables de session</th></tr> ' ;
if (isset($ HTTP_SESSION_VARS ))
foreach ($ HTTP_SESSION_VARS as $ key = > $ value )
{
if (is_array($ value ))
{
echo " < tr bgcolor = \ " # CCCCCC\ " > < td nowrap bgcolor = \ " # CCCCFF\ " > $ key < / td > < td > " ;
foreach ($ value as $ inckey = > $ incval )
echo " [ $ inckey ] = > $ incval < br / > " ;
echo ' </td></tr> ' ;
}
else
echo " < tr bgcolor = \ " # CCCCCC\ " > < td nowrap bgcolor = \ " # CCCCFF\ " > $ key < / td > < td > $ value < / td > < / tr > " ;
}
echo ' <tr bgcolor="#9999CC"><th colspan="2">Variables passées en URL</th></tr> ' ;
if (isset($ HTTP_GET_VARS ))
foreach ($ HTTP_GET_VARS as $ key = > $ value )
{
echo " < tr bgcolor = \ " # CCCCCC\ " > < td nowrap bgcolor = \ " # CCCCFF\ " > $ key < / td > < td > $ value < / td > < / tr > " ;
}
echo ' <tr bgcolor="#9999CC"><th colspan="2">Variables passées par formulaire</th></tr> ' ;
if (isset($ HTTP_POST_VARS ))
foreach ($ HTTP_POST_VARS as $ key = > $ value )
{
if (is_array($ value ))
{
echo " < tr bgcolor = \ " # CCCCCC\ " > < td nowrap bgcolor = \ " # CCCCFF\ " > $ key < / td > < td > " ;
foreach ($ value as $ inckey = > $ incval )
echo " [ $ inckey ] = > $ incval < br / > " ;
echo ' </td></tr> ' ;
}
else
echo " < tr bgcolor = \ " # CCCCCC\ " > < td nowrap bgcolor = \ " # CCCCFF\ " > $ key < / td > < td > $ value < / td > < / tr > " ;
}
echo ' </table> ' ;
|
|
| auteur : Thibaut Cuvelier |
La fonction http://php.net/isset permet de déterminer si une variable est affectée ou non, si une variable existe. Elle renvoie la valeur booléenne associée. On peut l'utiliser sur toutes sortes de structures de données, que ce soit une simple variable entière, textuelle ou un tableau, un objet, etc.
if ($ var ){
print ' La variable est vraie ' ;
}
if (isset($ var )){
print ' La variable est définie ' ;
}
else {
print ' La variable n\ ' est pas définie' ;
}
|
Remarquez dans cet exemple que if($var) et if(isset($var)) ne sont d'aucune manière équivalents. Le premier vérifie que la variable est vraie (soit si elle contient une valeur booléenne vraie, soit si elle contient une valeur non null) et renvoie un avertissement si la variable n'existe pas ; la seconde ne fait que vérifier son existence.
Pour que le script ci-dessus affiche que la variable est définie, on peut utiliser divers subterfuges :
Ainsi, la variable existera. Pour que isset() renvoie une valeur fausse après une telle déclaration, on peut utiliser la fonction unset() :
$var = 'string';
if(isset($var)){
echo $var; // affiche string
}
unset($var);
if(isset($var)){
echo $var; // n'affiche rien
}
|
|
lien : Comment tester l'existence d'une constante ?
|
Consultez les autres F.A.Q.
Les sources présentés sur cette page sont libres de droits,
et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs.
Copyright ©2003
Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de
l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans
de prison et jusqu'à 300 000 E de dommages et intérêts.
Cette page est déposée à la SACD.
|