0 XP
?
Débutant40 min25 XP

Objectifs de cette leçon

  • Créer des variables avec le sigle $
  • Connaître les types principaux de PHP
  • Utiliser gettype() pour vérifier les types

Variables et types en PHP 📦

PHP est un langage a typage dynamique mais avec des regles strictes sur la syntaxe des variables. Apprends a manipuler les differentes donnees.

Declaration des variables

<?php
// Pas de mot-clé pour déclarer — on utilise juste $
$nom = "Marie";           // string
$age = 22;                // integer
$moyenne = 15.5;          // float
$admis = true;            // boolean

// Les noms de variables :
// - Commencent toujours par $
// - Peuvent contenir lettres, chiffres, underscores
// - Ne peuvent PAS commencer par un chiffre
// - La casse compte ($Nom ≠ $nom)
?>

⚠️ Attention : $2nom est invalide. $nom_2 est valide.

Les types scalaires

<?php
// STRING — 3 façons de déclarer
$chaine1 = "Double quotes — interprète les variables : $nom";
$chaine2 = 'Single quotes — texte brut, pas d'interprétation';
$chaine3 = <<<EOT
Heredoc — multiline
avec interprétation : $nom
EOT;

// INTEGER
$decimal = 42;
$hexa = 0x2A;      // 42 en hexadécimal
$octal = 052;      // 42 en octal
$binaire = 0b101010; // 42 en binaire

// FLOAT (nombre à virgule)
$pi = 3.14159;
$scientific = 1.5e3; // 1500.0

// BOOLEAN
$verite = true;
$mensonge = false;
?>

Différence entre double et single quotes

<?php
$nom = "Alice";

// Double quotes : interprétation des variables
echo "Bonjour $nom";     // Bonjour Alice

// Single quotes : pas d'interprétation
echo 'Bonjour $nom';     // Bonjour $nom (littéral)

// Pour les variables dans les single quotes, on concatène :
echo 'Bonjour ' . $nom;  // Bonjour Alice
?>

💡 Astuce : Les single quotes sont légèrement plus rapides car PHP n'a pas besoin d'analyser le contenu pour chercher des variables.

Tableaux (Arrays)

<?php
// Array indexé
$fruits = ["pomme", "banane", "cerise"];
echo $fruits[0]; // pomme

// Array associatif (comme un objet JS)
$personne = [
    "nom" => "Dupont",
    "age" => 30,
    "ville" => "Paris"
];
echo $personne["nom"]; // Dupont

// Tableau multidimensionnel
$matrice = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
];
echo $matrice[1][2]; // 6
?>

Opérations sur les types

<?php
// Conversion de type (typecasting)
$nombre = "42";
$resultat = (int)$nombre; // 42 (integer)
$decimal = (float)$nombre; // 42.0

// Détection de type
$val = "hello";
echo is_string($val); // 1 (true)
echo is_int($val);    // 0 (false)

// Type juggling (conversion automatique)
echo 5 + "5";     // 10 (string converti en int)
echo "5 chevaux" + 2; // 7 (la partie non numérique est ignorée)
?>

⚠️ Piège courant : En PHP, "5" == 5 est true (comparaison souple). Utilise === pour la comparaison stricte.

Les constantes

<?php
// Avec define()
define("PI", 3.14159);
echo PI * 2; // 6.28318

// Avec const (disponible depuis PHP 5.6)
const MAX_SIZE = 100;

// Les constantes n'ont PAS de $ devant
echo PI;    // Correct
echo $PI;   // Incorrect — $PI n'existe pas

// Constantes magiques
echo __LINE__;    // Numéro de la ligne actuelle
echo __FILE__;    // Chemin du fichier actuel
echo __DIR__;     // Répertoire du fichier actuel
echo __FUNCTION__;// Nom de la fonction actuelle
?>

Null et isset()

<?php
$variable = null;

echo $variable;        // rien ne s'affiche
var_dump($variable);   // NULL

// isset() vérifie si une variable existe et n'est pas null
$age = 25;
echo isset($age);    // 1 (true)
echo isset($var);    // 0 (false)

// unset() détruit une variable
unset($age);
echo isset($age);    // 0 (false)
?>

Récapitulatif des types

TypeExempleVérification
string"texte"is_string()
int42is_int()
float3.14is_float()
booltrueis_bool()
array[1,2]is_array()
nullnullis_null()
objectnew Obj()is_object()

Exercice pratique

Crée un script qui :

  1. Déclare tes informations personnelles (nom, âge, ville, étudiant)
  2. Affiche un tableau récapitulatif avec var_dump()
  3. Convertit ton âge en string puis vérifie le résultat
<?php
$nom = "Ta valeur";
$age = TonAge;
$ville = "Ta ville";
$etudiant = true;

var_dump($nom);
var_dump($age);
var_dump($ville);
var_dump($etudiant);

// Conversion
$ageStr = (string)$age;
echo "\nAge en string : " . $ageStr . "\n";
echo "Type : " . gettype($ageStr);
?>

🎯 A retenir : PHP est faiblement typé mais la comparaison stricte (===) est recommandée. Toujours initialiser ses variables et vérifier leur existence avec isset().


Prochaine leçon : Les conditions en PHP — if, elseif, switch !

⚡ Simulateur — Variables et types

Étape 1/7
📝 Pseudo-code
1<?php
2$age = 25;
3$nom = "Alice";
4$prix = 19.99;
5$est_actif = true;
6echo gettype($age);
7echo gettype($nom);
8?>
⚙️ Exécution
📦 Mémoire
Aucune variable
🔀 Flux d'exécution
<?php
3
Début du script

Ouverture du bloc PHP avec <?php.