La pièce sentait le café froid et la sueur des nuits blanches. Sur l'écran cathodique, des caractères dansaient dans une lueur verdâtre. C'était là que ça commençait : la grammaire brute de PHP. Pas de place pour le style. Juste la précision du tueur à gages.
Syntaxe générale
Un fichier .php. Du texte, du HTML, et soudain, la coupure. Chaque instruction se termine par un point-virgule. Comme une balle logée dans la chambre.
<?php
echo "Salut l'indic";
$nombre = 42;
?>
Balises PHP
Le signal. <?php pour entrer dans l'ombre. ?> pour en sortir.
<!DOCTYPE html>
<html>
<body>
<h1>En surface tout semble normal</h1>
<?php
// Sous la surface, le code travaille
echo "<p>Message de l'ombre</p>";
?>
<p>Fin de transmission</p>
</body>
</html>
Variables et constantes Les variables trahissent, les constantes sont des serments.
<?php
$message = "La nuit est longue"; // Ça peut changer
$message = "Trop longue"; // Trahison
define('CODE_SECRET', 1947); // Serment
// CODE_SECRET = 2023; // Impossible. Mort instantanée (erreur)
echo CODE_SECRET; // 1947, toujours
?>
Types de données L'identité de chaque valeur dans l'ombre.
<?php
$nom = "Marlowe"; // string
$age = 42; // int
$temperature = 36.7; // float
$enVie = true; // bool
$armes = ["Colt .45", "Couteau", "Menaces"]; // array
$complice = null; // null, le grand vide
var_dump($nom); // string(7) "Marlowe"
?>
Opérateurs L'arsenal de base pour les calculs troubles.
<?php
// Arithmétiques
$butin = 5000;
$part = $butin / 4; // 1250
$reste = $butin % 3; // 2 (reste de la division)
// Comparaison
$suspectA = "Smith";
$suspectB = "Smith";
$memePersonne = ($suspectA == $suspectB); // true
// Identité stricte
$chiffre = "42";
$nombre = 42;
$identique = ($chiffre === $nombre); // false, type différent
// Logiques
$pleut = true;
$nuit = true;
$sortir = !$pleut || $nuit; // true (soit il ne pleut pas, soit c'est la nuit)
?>
Structures de contrôle Les embranchements du destin.
<?php
$armeSurSoi = true;
$flicsAProximite = false;
if ($armeSurSoi && $flicsAProximite) {
echo "Baisse la tête et cours";
} elseif ($armeSurSoi && !$flicsAProximite) {
echo "Continue à marcher normalement";
} else {
echo "Tu es propre, respire";
}
// Switch : choix multiples
$code = 3;
switch ($code) {
case 1:
echo "Rendez-vous au pont";
break;
case 2:
echo "Abort mission";
break;
case 3:
echo "La cible est éliminée"; // Celui-ci s'exécute
break;
default:
echo "Code non reconnu";
}
?>
Boucles La répétition obsessionnelle.
<?php
// For : on sait combien de fois
echo "Compte à rebours pour l'explosion :<br>";
for ($i = 5; $i >= 1; $i--) {
echo "$i...<br>";
}
echo "Boom.";
// While : tant que...
$whiskyDansLeVerre = true;
$gorgées = 0;
while ($whiskyDansLeVerre) {
$gorgées++;
echo "Gorgée $gorgées avalée.<br>";
if ($gorgées >= 3) {
$whiskyDansLeVerre = false; // Verre vide
echo "Plus rien que des glaçons.";
}
}
// Foreach : fouiller chaque poche
$indices = ["bouton arraché", "trace de poudre", "billet marqué"];
foreach ($indices as $indice) {
echo "Indice trouvé : $indice<br>";
}
// Forech avec clés (tableau associatif)
$suspects = [
"Bruno" => "Porte un imperméable",
"Léa" => "A menti sur son alibi",
"Marcus" => "Gaucher, comme le tueur"
];
foreach ($suspects as $nom => $detail) {
echo "$nom : $detail<br>";
}
?>
Je me suis renversé en arrière, la nuque contre le cuir usé. L'écran clignotait avec ces bouts de code. La syntaxe, c'est la façon de tenir son arme. Il fallait maintenant apprendre à viser.