PHP - MySQL [Retour au menu]

Premiers pas

Exemple Minimaliste
Délimiteurs de PHP
Balises HTML au sein de PHP
Utilisation d'une variable
Affichage de caractères spéciaux
Scinder le code pour plus de lisibilité
Commentaires
Ou peut on placer du code PHP dans une page .PHP ?

Exemple minimaliste

Afficher Hello World à l'écran :

<head>
</head>
<body>
<?
echo "Hello World";
?>
</body>

Donne :

Hello World

Délimiteurs de PHP

Il est possible de délimiter le PHP de cette manière :

<script language="php"> echo ("Hello World"); </script>

une 3ème manière :

<?PHP echo ("Hello World"); ?>

Balises HTML au sein de PHP

Dans l'exemple ci dessous, un saut de ligne est inséré entre Un et Deux :

echo "Un<br/>deux"

Donne :

Un
deux

Utilisation d'une variable

Les variables doivent être préfixées avec $. Elles ne se déclarent pas, comme dans d'autres langages avec VAR ou DIM.

Ainsi le code source :

$truc=4;
echo $truc;

Donne comme résultat :

4

Sans le $ :

truc=4;
echo truc;

Donne comme résultat :

Parse error: syntax error, unexpected '='

Les variables sont case-sensitives (MAJUSCULES <> minuscules), contrairement aux fonctions comme echo, qui ne le sont pas.
$truc=4;
echo $TrUc;

Donne comme résultat rien du tout (un espace blanc, sans erreur) :

 

Les parenthèses sont facultatives, ainsi que les guillemets

$truc=999;
echo "1: ";
echo $truc;
echo "<BR> 2: ";
echo ($truc);
echo "<BR> 3: ";
echo ("$truc");
echo "<BR> 4: ";
echo "$truc";

Donne comme résultat :

1: 999
2: 999
3: 999
4: 999

Lorsqu'on veut afficher une chaîne de caractères contenant à la fois du texte simple et des variables, il faut faire attention aux guillemets et aux parenthèses. Ce code est faux :

$truc=999;
echo Le prix est de $truc francs;

Donne

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';'
Le code suivant donne aussi une erreur :
$truc=999;
echo ("Le prix est de ", $truc, " francs");
Parse error: syntax error, unexpected ','

Voici différentes manières correctes d'écrire :

$truc=999;
echo "1. Le prix est de $truc francs";
echo "<BR/>";
echo "2. Le prix est de",$truc,"francs";
echo "<BR/>";
echo "3. Le prix est de" , $truc , "francs";
echo "<BR/>";
echo "4. Le prix est de";
echo $truc;
echo "francs";
echo "<BR/>";
echo "5. Le prix est de" . $truc . "francs";

Ce qui donne : (Constatez certains endroits ou il manque des espaces)

1. Le prix est de 999 francs
2. Le prix est de999francs
3. Le prix est de 999 francs
4. Le prix est de999francs

Il est possible d'utiliser l'accolade.

$truc = 5;
echo "Vous êtes $truc ème"; // OK mais il y a un espace
echo "Vous êtes $trucème"; // Faux : Variable vide "$trucème"
echo "Vous êtes {$truc}ème"; // OK, et pas d'espace gênant
Vous êtes 5 ème
Vous êtes
Vous êtes 5ème

Affichage de caractères spéciaux

Admettons qu'on veuille afficher littéralement $truc, il va falloir recourir à une astuce. L'ajout du caractère d'échappement \.

Exemple :

$truc=999;
echo "1. ";
echo truc;
echo "<br/>2. ";
echo $truc;
echo "<br/>3. ";
echo "\$truc";

Va afficher : (Les guillemets sont indispensables lors de l'utilisation de \).

1. truc
2. 999
3. $truc

Gestion des guillemets et des apostrophes

On peut afficher du texte de trois manières différentes :

echo "bonjour";
echo 'bonjour'
echo bonjour;

Donne

bonjourbonjourbonjour

Attention : Lorsqu'on ne met ni de guillemets ni d'apostrophes, on ne peut écrire Qu'UN SEUL MOT.
echo Bonjour tout le monde
donne une erreur.

On peut ainsi, en jouant avec les postrophes et les guillemets ::

- Mettre du texte entre guillements littéralement
- Mettre du texte entre apostrophes littéralent

echo "'Bonjour'";
echo "<br/>";
echo '"Bonjour"';

Donne :

'Bonjour'
"Bonjour"

Pour afficher littéralement du texte entre guillemets, on utilise ce même caractère d'échappement \.

Les choses sont un peu plus délicates lorsqu'on désire afficher une chaîne de caractères pourvue à la fois de guillemets et d'apostrophes. Comment faire pour afficher littéralement :

L'histoire de "Jack l'éventreur"

Nous allons utiliser le caractère d'échappement \ pour afficher les guillemets. C'est a dire que nous allons encadrer la chaîne de caractères entre guillemets (puisque la chaîne contient des apostrophes), et, puisque la chaîne contient également des guillemets, ceux-ci seront affichés grâce à \, comme ceci :

echo "L'histoire de \"Jack l'éventreur\"";

Donne :

L'histoire de "Jack l'éventreur"

On peut, de la même façon, attribuer cette chaîne à une variable :

$Test = "L'histoire de \"Jack l'Eventreur\""

Si on veut afficher le caractère \ lui-même, il n'y a rien de spécial à faire, il va se contenter d'afficher littéralement M, c'est ce qu'on veut.

echo "C:\Mes documents";
Donne :
C:\Mes documents

Scinder le code pour plus de lisibilité

On peut scinder les lignes sans que ça dérange PHP en quoi que ce soit :

echo

"s
a
lut"
;
s a lut
Notez les espaces qui sont apparus à cause des retours à la ligne, ce qui incite a ne pas carrément couper les chaînes. Voici un exemple "inverse" : Tout compresser sur une seule ligne :
$Truc=2;echo$Truc;
2

Commentaires

Les commentaires en HTML ne se notent pas de la même façon qu'en PHP

Il y a 3 façons de mettre des lignes de commentaires en PHP :

<!-- Ceci est du commentaire HTML -->
<script language="php">
/* Commentaire 1 en PHP :
Encadrer comme ceci
(plusieurs lignes possibles donc */
# Commentaire 2 en PHP, seulement au début de la ligne
// Commentaire 3 en PHP, même chose que commentaire 2
</script>

Ou peut on placer du code PHP dans une page .PHP ?

Où on veut : Le code sera de toute manière exécuté :

<?
echo "Avant la section HTML <br/>";
?>
<HTML>
<?
echo "Avant la section HEAD <br/>";
?>
<HEAD>
<TITLE>
Mon titre
</TITLE>
<?
echo "Dans la section HEAD <br/>";
?>
</HEAD>
<BODY>
<?
echo "Dans la section BODY <br/>";
?>
</BODY>
</HTML>
<?
echo "Et même tout à la fin";
?>

Donne :

Avant la section HTML 
Avant la section HEAD 
Dans la section HEAD 
Dans la section BODY 
Et même tout à la fin