Hébergement du site en PHP et Mysql par WDMédia-hébergement
Vous aussi adpotez les éléPHPants de Vincent Pontier !  
CONCOURS
 
 
PLUS DE PHP
 
 
PLUS DE JAVASCRIPT
 
COMMENT CA MARCHE
 
 
EXPLIQUE-MOI
 
 
NEWS LETTER
 

 
PARTENAIRES
 
Découvrez scriptsphp.org
Découvrez phpteam.net
Tout sur les expressions régulières
IE sucks :-)
 
DESIGN DU SITE
 
Les chaînes de caractères : soyons cohérents !

Dans de nombreux langages, l'écriture d'une chaîne de caractères se fait généralement d'une seule et même manière. Ce peut être une suite de caractères entre guillemets ou entre apostrophes. Dans le cas de PHP, il existe plusieurs manières d'exprimer une chaîne de caractères, chacune ayant une propriété différente. Malheureusement bien trop de gens ne savent pas faire la différence et les utilisent de manière peu cohérente.

Voici les trois manières d'exprimer une chaîne de caractères en PHP :

  • Les chaînes statiques dont le contenu ne varie pas et qui doivent être encadrées par des apostrophes.
  • Les chaînes dynamiques dont le contenu est interprété et peut donc varier en fonction des variables qu'elles renferment. Ces chaînes sont encadrées par des guillemets doubles ou respectent la syntaxe "HereDoc".
Je vous laisse consulter la documentation sur la syntaxe des chaînes de caractères.

Quel est le problème ?

Le problème est que beaucoup de personnes utilisent ces chaînes de caractères de manière peu cohérente. J'entends par là qu'ils alternent les chaînes entre apostrophes et guillemets doubles sans respecter de logique. Une fois c'est l'une, une fois c'est l'autre, ils mélangent et ils "antislashent". Cela démontre une certaine incompréhension des caractéristiques de ces chaînes, et je ne vous parle pas des débutants qui se perdent entre les copier/coller et les variables dans les chaînes statiques.

Et alors ?

Alors, pourquoi ne pas adopter une vrai démarche méthodique et systématique qui consiste à utiliser le bon format de chaînes de caractères en fonction du contexte ? Cette démarche vous permettant de clarifier vos idées par le simple fait de savoir ce que vous faites.

Bien sûr, il n'est pas évident pour ceux qui viennent d'un langage où la définition d'une chaîne de caractères est toujours entre guillemets, mais cela prouvera que vous savez faire la part des choses.

Je suis cohérent, je n'utilise que des guillemets !

Ce n'est pas faux, surtout que l'analyseur syntaxique de PHP considère une chaîne de caractères entre guillemets et sans variable, comme une chaîne statique. Seulement, lorsque vous faites ça, vous imposez à l'analyseur de vérifier qu'il n'y a pas de variable à l'intérieur. Cette perte de temps est certes négligeable, voire nulle dans le cas où vous utilisez un cache d'OpCode, c'est pourquoi je n'insisterai pas sur les performances.

Non, mon argumentaire est vraiment basé sur cette absence de cohérence dans l'écriture du code et qui peut être symptomatique d'un manque de clarté dans vos développements.

Pour finir, les chaînes entre guillemets présentent un inconvénient lors de la génération de code HTML, c'est le manque de lisibilité lorsque que vous écrivez ceci :

<?php
echo "<input type=\"text\" name=\"nom\" value=\"votre nom\" class=\"saisie\" />";
?>

Alors qu'il est tellement plus lisible d'écrire :

<?php
echo '<input type="text" name="nom" value="votre nom" class="saisie" />';
?>

Je rappelle que les attributs HTML doivent de préférence être encadrés par des guillemets, ne serait-ce que par le fait que la fonction htmlspecialchars n'encode pas les apostrophes par défaut (pas d'entité définie).


Revenir aux mises au point



Ajouter une réponse
Nom
Email
Titre

Mise en forme : gras = [b]...[/b], italic = [i]...[/i], souligné = [u]...[/u], citation = [quote]...[/quote], lien = [url]liens_externe[/url] ou [url nom=texte]liens_externe[/url], code source : [code]...[/code]

Mémoriser mon nom et mon email : Oui Non
www.phpdebutant.org © 2017 - L'équipe de phpDebutant - Hébergement : WDMédia-hébergement
DEBUTEZ !
 
  0.  Introduction
  1.  Afficher une phrase ou une image
  2.  Afficher la date et l'heure
  3.  PHP dans du code HTML
  4.  La concaténation
  5.  Récupérer les valeurs d'un formulaire
  6.  Les structures de contrôle
  7.  Ecrire et lire dans un fichier texte
  8.  Les fonctions utilisateurs
  9.  Les variables d'environnement
  10.  Quelques fonctions utiles
  11.  SQL/MySQL (Create, Alter & Drop)
  12.  SQL/MySQL (Insert et Select)
  13.  SQL/MySQL (Delete et Update)
  14.  SQL/MySQL (Where)
  15.  Fonctions PHP pour mySQL
  16.  Interroger une table MySQL
  17.  Alimenter une ou plusieurs tables mySQL
  18.  Les pseudos-frames
  19.  Les sessions php4
  20.  Affichage page par page
  21.  Images dynamiques
  22.  Ca marche pas ?
  23.  Variables globales à OFF
  24.  Les variables dynamiques