Accueil
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi Eclipse MS-Office SQL & SGBD Oracle  4D  Business Intelligence
logo
Sommaire > Variables
19.1. Les variables dynamiques (1)
                Comment appeler une variable dont le nom est stocké dans une autre variable?
19.2. Portée des variables (3)
                Comment accéder à une variable globale depuis une fonction?
                Comment créer une variable globale?
                Comment stocker la valeur d'une variable locale dans une variable globale?
        Comment connaître le type d'une variable ?
        Comment savoir si une variable est affectée ?
        Comment savoir si une variable contient une valeur non nulle ?
        Pourquoi ma variable n'est pas interprétée dans une chaine ?
        Qu'est-ce qu'une variable statique ?
        Comment connaître les variables POST, GET et SESSION envoyées à la page ?



Comment connaître le type d'une variable ?
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 :

  1. is_array() pour un tableau.
  2. is_bool() pour un booléen.
  3. is_double(), is_float() et is_real() pour un flottant.
  4. is_int(), is_integer() et is_long() pour un entier.
  5. is_numeric() et is_scalar() pour un nombre entier ou flottant.
  6. is_object() pour un objet.
  7. is_resource() pour une ressource (par exemple un lien vers une base de données).
  8. is_string() pour une chaîne de caractères.
if(is_array($users)) {
    echo count($users);
}
lien : faq Comment vérifier le type d'une chaîne ?

Comment savoir si une variable est affectée ?
auteur : dourouc05
La fonction 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 :
$var = NULL;
$var = 0;
// ...
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 : faq Comment tester l'existence d'une constante ?

Comment savoir si une variable contient une valeur non nulle ?
auteur : Gérard Ernaelsten
$var = NULL | 0 | "" ;
 
if(!empty ($var)){
    echo 'valeur non NULL';
}else{
    echo 'Valeur NULL';
}

Pourquoi ma variable n'est pas interprétée dans une chaine ?
auteurs : Eusebius, Jérôme
Vous avez écrit ce qui suit et l'affichage n'est pas celui attendu

$variable = 'valeur' ;
echo 'chaine $variable'; // affiche : 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; // affiche : chaine valeur
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" ; // affiche : chaine valeur

$tableau['cle'] = 'valeur2';
echo "test {$tableau['cle']}" ; // affiche : test valeur2
3) La troisième solution est l'utilisation de la syntaxe HereDoc

$variable = 'valeur' ;
echo <<<identifiant
chaine $variable
identifiant;

Qu'est-ce qu'une variable statique ?
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; // Déclaration et initialisation de la variable statique $compteur
    $compteur++ ; // Incrémentation de la variable
    echo "Nombre d'appels à la fonction : " . $compteur;
}

Comment connaître les variables POST, GET et SESSION envoyées à la page ?
auteur : Rakken
/**
 * Cette fonction permet d'afficher le contenu intégral de la variable $var.
 * @param mixed $var : la variable à afficher.
 * @param string $titre : facultatif, un éventuel titre à afficher avant la  variable.
 */
function printVar($var, $titre=NULL) {
    echo '<fieldset>';
    echo '<legend>' . $title . '</legend>';
    echo '<dl>';
    foreach($_POST as $key => $values) {
        echo '<dt>' . $key . '</dt>';
        echo '<dd style="white-space: pre">'; 
        print_r($values);
        echo '</dd>';
    }
    echo '</dl>';
    echo '</fieldset>';
}
Afficher les variables de sessions :
printVar($_SESSION, 'Les variables en session');
Afficher les variables postées par un formulaire (en mode POST) :
printVar($_POST, 'Les variables postées');
Afficher les variables postées via l'url (mapage.php?var11=valeur) :
printVar($_GET, 'Les variables en get');
Afficher l'intégralité de ces variables :
printVar($_REQUEST);
La liste des variables dites "superglobales" est disponible dans la documentation de PHP.



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.

Vos questions techniques : forum d'entraide Accueil - Publiez vos articles, tutoriels, cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter - Copyright 2000..2005 www.developpez.com