COURS PHP

  Dernière mise à jour effectuée le : Samedi 16 août 2003    

Accueil | Afficher une chaîne de caractères à l'écran

Afficher une chaîne de caractères à l'écran
L'une des fonctions principale de PHP étant de générer des pages dynamiques, c'est-à-dire crées de toute pièces pour l'utilisateur, les moyens d'écrire quelque chose dans une page Web dynamique revêt du coup une grande importance. C'est à ça que nous allons nous atteler.



echo

La forme générale de cette instruction est

echo "une chaîne de caractères" ;

Ca n'est pas une fonction, mais une construction du langage PHP. Quand l'interpréteur PHP rencontre cette instruction, il affiche à l'écran (dans la page HTML) la chaîne de caractères contenue entre les guillemets. Pas plus compliqué que ça.

Mais on peut quand même faire beaucoup mieux. Par exemple, on peut mettre la chaîne de caractères dans une variable et afficher la variable :

$Prenom = "Mon prénom est Philippe" ;
echo "$Prenom " ;
donnera comme résultat : Mon prénom est Philippe

ATTENTION : On sait que les chaînes de caractères peuvent être définies entre "doubles guillemets", ou 'simple guilemets' (apostrophe). Ce qui donne le même résultat. Il n'en est pas de même à l'intérieur d'une instruction echo.

$Prenom = "Mon prénom est Philippe" ;
echo "$Prenom " ;
donnera comme résultat : Mon prénom est Philippe

alors que

$Prenom = "Mon prénom est Philippe" ;
echo '$Prenom ' ;
donnera comme résultat : $Prenom

Mieux encore, on peut mélanger des chaînes de caractères et le contenu de variables. Par exemple :

$Prenom = "Philippe" ;
echo "Mon prénom est $Prenom " ;

donnera le même résultat : Mon prénom est Philippe

ATTENTION : Lorsque les variables sont des postes d'un tableau associatif dont les clés doivent elles même être entre guillemets, il faut utiliser la concaténation de chaînes de caractères.

Par exemple, si on reprend ce que nous avons fait dans la leçon sur les tableaux associatifs à deux dimensions, en le programmant avec l'instruction echo, on aurait :

echo "En Anglais, Monday veut dire " .$TradJoursMois['NomJour']['Monday'] . " alors que Lundi se traduit en Allemand par " .$TradJoursMois['NomJourAllemand']['Lundi'] ;

Ce qui donne le résultat suivant :

"En Anglais, Monday veut dire Lundi alors que Lundi se traduit en Allemand par Montag"

Nous avons là, l'affichage de chaînes de caractères, concaténées (en français : mis au bout les unes des autres) avec le contenu de variables provenant d'un tableau associatif dont les clés doivent être mises entre guillemets.
Il faut donc dans ce cas là, découper notre expression en tronçons. Des tronçons comprenant des chaînes de caractères pures, et des tronçons représentant les variables. On met tout ça les uns au bout des autres avec le signe de "concaténation" (collage en français) qui est le "." (point). En examinant ça de plus près, ça donne :

1er tronçon, une chaîne de caractères entre guillemets : "En Anglais, Monday veut dire "
2ème tronçon, une variable : $TradJoursMois['NomJour']['Monday']
3ème tronçon, une chaîne de caractères : " alors que Lundi se traduit en Allemand par "
4ème tronçon, une variable : $TradJoursMois['NomJourAllemand']['Lundi']

On mets tout ça bout à bout en mettant un "." (point) entre chaque tronçon, on met echo devant, on n'oublie surtout pas le point virgule à la fin, et ça donne :

echo "En Anglais, Monday veut dire " . $TradJoursMois['NomJour']['Monday'] . " alors que Lundi se traduit en Allemand par " . $TradJoursMois['NomJourAllemand']['Lundi'] ;

ATTENTION : Dans ce cas là, vous pouvez à loisir mélanger les guillemets ou les apostrophes, ou un mix des deux, ça ne change rien, puisque ce sont des délimiteurs de chaînes de caractères.
Le tout est de ne pas commencer une chaîne de caractères par un guillemet et de la finir par une apostrophe. Là, ça ne marcherait pas.

echo 'En Anglais, Monday veut dire ' . $TradJoursMois['NomJour']['Monday'] . ' alors que Lundi se traduit en Allemand par ' . $TradJoursMois['NomJourAllemand']['Lundi'] ;

est strictement la même chose que

echo "En Anglais, Monday veut dire " . $TradJoursMois["NomJour"]["Monday"] . " alors que Lundi se traduit en Allemand par " . $TradJoursMois['NomJourAllemand']['Lundi'] ;

 



print()

print() est une véritable fonction (c'est sa différence avec echo). C'est à dire qu'en plus de faire strictement la même chose que sa petite copine echo, elle renvoie la valeur "true" (vrai en français) lorsqu'elle a bien fait son travail. Elle renvoi "false" (faux en français) si elle n'a pas pu faire son travail.

A part ça, vous pouvez interchanger print() et echo sans voir aucune différence. A tel point que certains auteurs se demandent si print() a bien sa place dans le langage tellement elles font toutes les deux la même chose.

Si vous utilisez print(), n'oubliez surtout pas de mettre les parenthèses. L'exemple du paragraphe précédent s'écrirait alors :

print ("En Anglais, Monday veut dire " .$TradJoursMois['NomJour']['Monday'] . " alors que Lundi se traduit en Allemand par " .$TradJoursMois['NomJourAllemand']['Lundi']) ;

Vous voyez que c'est vraiment du pareil au même. A vous de voir et de choisir ce qui vous fait le plus plaisir. Certainement, les programmeurs JavaScript, habitués à utiliser des fonctions, se sentiront plus à l'aise avec les parenthèses dont ils ont une grande habitude. Pour les autres, c'est à vous de voir.

 



Ce cours est enseigné par Philippe Médan 
dans le cadre de la formation des professionnels de l'INTERNET.
au CREFAC , 14 rue Scandicci, 93000 Pantin. Tél. : 01 48 46 51 99
au GITA-GRETA , Lycée Technologique Diderot 61, rue David D'Angers 75019 Paris Tél. : 01 40 40 36 27
au CESI à l'Ecole des ingénieurs, 116 Av Aristide Briand, BP 57, 92224 Bagneux CEDEX Tél. : 01 45 36 70 00

© Philippe Médan 1999-2003. Tous droits de reproduction réservés pour tous pays.