FAQ PHP
FAQ PHPConsultez toutes les FAQ
Nombre d'auteurs : 68, nombre de questions : 580, dernière mise à jour : 18 septembre 2021
Le but premier d'un script PHP étant de générer des pages HTML, il faut pouvoir afficher des chaînes de caractères à incruster aux dites pages.
Pour cela il existe des structures du langage PHP que l'on peut utiliser comme des fonctions, même si rigoureusement parlant, elles n'en sont pas : echo et print.
Exemples :
echo($machaine
);
echo("
bonjour
"
);
echo('
bonjour
'
);
echo $machaine
;
echo "
bonjour
"
;
echo '
bonjour
'
;
On le voit, sa syntaxe est très souple, on peut l'utiliser comme une fonction en passant une chaîne de caractères entre parenthèses ou bien l'utiliser plus brutalement en "oubliant" ces mêmes parenthèses.
Il existe une syntaxe offrant un raccourci très utile vers echo :
Votre nom est <?
=
$name
?>
...
Il est tout aussi possible de passer plusieurs paramètres en argument à echo mais alors sans parenthèses impérativement.
Exemples :
echo "
bonjour
"
,
$user_name
,
'
<br>
'
;
print s'utilise exactement comme echo à la différence que print retourne un booléen TRUE ou FALSE selon que l'affichage s'est bien passé ou non.
A noter que les chaînes de caractères ainsi passées à echo et à print peuvent s'étaler sur plusieurs lignes :
echo "
<table bgcolor=
$color
>
<tr>
<td>bonjour</td>
</tr>
</table>
"
;
D'ailleurs, pour simplifier l'affichage d'une longue chaîne s'étalant sur plusieurs lignes, il existe une syntaxe spéciale appelée Here-Doc :
echo <<<EOD
Voici une longue
"chaîne de caractères"
sur
$nbr
lignes !
EOD;
Cette syntaxe consiste à délimiter la chaîne non plus par des simples ' ' ou doubles quotes " ", mais par un mot clé à votre convenance préfixé par trois symboles mathématiques inférieur <. Cette syntaxe est intéressante car elle évalue la chaîne comme le font les doubles quotes, mais il n'est plus nécessaire de déspécialiser les doubles quotes incluses dans la chaîne. A noter que le mot clé de délimitation de la fin de chaîne doit impérativement débuter sur une nouvelle ligne.
La seule différence entre echo et print, c'est que print retourne une valeur contrairement à echo.
N'oublions pas d'indiquer que printf() est la fonction du C transposée au PHP permettant le formatage des chaînes avant affichage.
Il est très important de commenter fortement ses scripts. D'abord parce qu'il est rare qu'on se souvienne du détail du fonctionnement de ses propres scripts 15 jours après les avoir écrits. Et ensuite, cela est indispensable en cas de développement en commun. Si vous avez déjà téléchargé des scripts sur le Net, vous avez du pester contre les auteurs qui ne commentent pas.
Il existe trois syntaxes issues du C et du Shell :
# commentaire sur une ligne
/* commentaire
sur plusieurs
lignes*/
// commentaire sur une ligne
Tous ce qui est en commentaire dans le code source PHP ne sera pas interprété par le serveur.
Il est important de ne pas imbriquer les commentaires sur plusieurs lignes !
De plus les commentaires avec # et // peuvent ne porter que sur une fin de ligne :
$id
=
get_user_id($_GET
[
'
login
'
]
);
// extraction id de l'utilisateur
Quand aux commentaires avec /* */, ils peuvent ne porter que sur une fraction d'une ligne, en plein milieu du code :
echo $start
,
"
"
,
/* get_phrase($id,'fr'),*/
"
"
,
$user
,
"
<br>
\n
"
;
Les commentaires peuvent être des phrases en français ou bien des portions de code PHP qu'il faut "taire". Par exemple, il est souvent utile lors du développement d'afficher les valeurs de certains paramètres pour contrèler que tout se passe comme prévu. Ces "traces" devront être commentées ou supprimées lors de la livraison de la version finale du script.
De plus il existe une norme pour commenter ses scripts issue du JavaDoc. Exemple :
/**
* Extraction nom utilisateur
*
@param
$id
id de l'utilisateur
*
@return
nom complet de l'utilisateur
*/
function get_user_name($id
) {
global $USERS
;
# importation tableau des utilisateurs
// on ne retourne que le champs 'name'
return $USERS
[
"
$id
"
][
'
name
'
];
}
Plus d'infos sur les normes de commentaire : sur Wikipedia
L'opérateur point ( . ) (équivalent du + du Java) permet de concaténer deux chaînes de caractères. Au besoin, PHP procède au cast implicite des variables non chaînes de caractères.
Syntaxe :
$chaine
=
$chaine
.
$str
;
$chaine
.=
$str
;
Ces deux syntaxes sont équivalentes.
Exemples :
echo "
Bonjour
"
.
$nom
;
$str
.=
$toto
;
$adresse
=
$num
.
$rue
.
$cp
.
$ville
;
1. Si on connait le nombre exact de tours : Pour aller de $debut à $fin par pas de $pas.
for ($i
=
$debut
;
$i
<=
$fin
;
$i
+=
$pas
) {...}
La structure for comporte 3 instructions : initialisation ($i = $debut), condition de continuation ($i <= $fin), manière d'incrémenter le compteur ($i += $pas).
Par pas de 1 :
for ($i
=
$debut
;
$i
<=
$fin
;
$i
++
) {...}
Exemple : 10 tours
for ($i
=
1
;
$i
<=
10
;
$i
++
) {...}
Boucle infinie :
for (;;
) {...}
2. Boucle tant qu'une condition est vérifiée
2.1 Au moins un tour obligatoire
Exemple:
2.2 Peut ne jamais entrer dans la boucle
while (condition) {...}
Il faut bien comprendre que PHP est un langage exécuté sur un serveur Web et qui permet généralement de produire des pages Web. Ces pages peuvent éventuellement contenir du code JavaScript, mais cet autre langage (JS) n'a aucune signification pour PHP. Tout ce qui n'est pas exécuté sur le serveur (JavaScript en fait partie) est considéré comme chaîne de caractères par PHP. À ce titre, divers moyens peuvent être utilisés pour afficher du JavaScript à l'aide d'un script PHP :
<
html>
<
head><title>
Comment mettre du JavaScript dans un script PHP<
/title
></head
>
<
body>
<?php
echo '<script type="text/javascript" language="javascript">alert("méthode #1");</script>'
;
?>
<script type
="
text/javascript
"
language
="
javascript
"
>
alert
(
"
méthode #2
"
);
</
script>
<
/body
>
<
/html
>