IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

FAQ PHP

FAQ PHPConsultez toutes les FAQ

Nombre d'auteurs : 68, nombre de questions : 580, dernière mise à jour : 18 septembre 2021 

 
OuvrirSommaireVariables

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).

 
Sélectionnez
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.
 
Sélectionnez
if(is_array($users)) {
    echo count($users);
}
Mis à jour le 7 août 2008  par Cyberzoide

Lien : Comment vérifier le type d'une chaîne ?

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.

 
Sélectionnez
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 :

 
Sélectionnez
$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() :

 
Sélectionnez
$var = 'string';
if(isset($var))
	echo $var; // affiche string

unset($var);

if(isset($var))
	echo $var; // n'affiche rien
Mis à jour le 8 mars 2011  par dourouc05

Lien : Comment tester l'existence d'une constante ?

 
Sélectionnez
$var = NULL | 0 | "" ;
 
if(!empty ($var)){
    echo 'valeur non NULL';
}else{
    echo 'Valeur NULL';
}
Mis à jour le 8 mars 2011  par Gérard Ernaelsten

Vous avez écrit ce qui suit et l'affichage n'est pas celui attendu

 
Sélectionnez
$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

 
Sélectionnez
$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).

 
Sélectionnez
$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

 
Sélectionnez
$variable = 'valeur' ;
echo <<<identifiant
chaine $variable
identifiant;
Créé le 10 décembre 2004  par Eusebius, Jérôme

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 :

 
Sélectionnez
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;
}
Mis à jour le 7 août 2008  par Julp
 
Sélectionnez
/**
 * 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)
{
    ?>
    <fieldset>
        <?php if(!empty($titre)): ?>
            <legend><?php echo $titre; ?></legend>
        <?php endif; ?>
 
        <?php if(!is_array($var)): ?>
            <p style="white-space: pre"><?php echo $var; ?></p>
        <?php else: ?>
            <dl>
                <?php foreach($var as $key => $values): ?>
                    <dt><?php echo $key; ?></dt>
                    <dd style="white-space: pre"><?php print_r($values); ?></dd>
                <?php endforeach; ?>
            </dl>
        <?php endif; ?>
    </fieldset>
    <?php
}

Afficher les variables de sessions :

 
Sélectionnez
echo printVar($_SESSION, 'Les variables en session');

Afficher les variables postées par un formulaire (en mode POST) :

 
Sélectionnez
echo printVar($_POST, 'Les variables postées');

Afficher les variables postées via l'url (mapage.php?var11=valeur) :

 
Sélectionnez
echo printVar($_GET, 'Les variables en get');

Afficher l'intégralité de ces variables :

 
Sélectionnez
echo printVar($_REQUEST);

La liste des variables dites « superglobales » est disponible dans la documentation de PHP.

Alternativement, on peut utiliser l'extension xdebug.

Mis à jour le 11 mars 2011  par Rakken, Guillaume Rossolini

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2003 Developpez.com Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.