par
Victor BRITO » 02 mars 2009, 22:44
Déjà, tu peux lui dire qu'un tel code rend la maintenance du code HTML difficile, surtout s'il doit être maintenu par un intégrateur qui ne maîtrise pas PHP.
Ensuite, le fait d'insérer une chaîne de caractères entre guillemets doubles ralentit le temps d'exécution du script et diminue les performances par rapport à l'usage de guillemets simples et de concaténations (si la différence est à peine perceptible pour un tout petit script, elle peut ne pas être négligeable quand une grosse application entière est en jeu) : en effet, avec les guillemets doubles, PHP s'attend à des variables insérées qui doivent être interprétées, ce qui n'est pas le cas avec les guillemets simples. Autrement dit, il est plus avantageux d'écrire
echo 'Ceci est une chaîne comportant une variable interprétée '.$lavariable;
que
echo "Ceci est une chaîne comportant une variable interprétée $lavariable";
Avantage qui se manifeste aussi quand on doit y insérer des bouts de codes HTML, comme les attributs, qui apparaissent ou non selon le contexte :
<input type="checkbox"<?php echo ($case_cochee === true)? ' checked="checked"': '' ?> />
des échappements en moins pour la valeur de l'attribut.
Il existe également un compromis, qui consiste à utiliser la
syntaxe Heredoc. Elle a l'avantage de faciliter la maintenance du code HTML (pas d'échappements) ; mais, à l'instar des chaînes encadrées par des guillemets doubles, le temps d'exécution risque d'en pâtir, les variables insérées étant interprétées. Heureusement, PHP 5.3 apportera un autre compromis, alliant facilité de maintenance et rapidité d'exécution : la
syntaxe Nowdoc.
Déjà, tu peux lui dire qu'un tel code rend la maintenance du code HTML difficile, surtout s'il doit être maintenu par un intégrateur qui ne maîtrise pas PHP.
Ensuite, le fait d'insérer une chaîne de caractères entre guillemets doubles ralentit le temps d'exécution du script et diminue les performances par rapport à l'usage de guillemets simples et de concaténations (si la différence est à peine perceptible pour un tout petit script, elle peut ne pas être négligeable quand une grosse application entière est en jeu) : en effet, avec les guillemets doubles, PHP s'attend à des variables insérées qui doivent être interprétées, ce qui n'est pas le cas avec les guillemets simples. Autrement dit, il est plus avantageux d'écrire
[php]echo 'Ceci est une chaîne comportant une variable interprétée '.$lavariable;[/php]
que
[php]echo "Ceci est une chaîne comportant une variable interprétée $lavariable";[/php]
Avantage qui se manifeste aussi quand on doit y insérer des bouts de codes HTML, comme les attributs, qui apparaissent ou non selon le contexte :
[php]<input type="checkbox"<?php echo ($case_cochee === true)? ' checked="checked"': '' ?> />[/php]
des échappements en moins pour la valeur de l'attribut.
Il existe également un compromis, qui consiste à utiliser la [url=http://fr.php.net/manual/fr/language.types.string.php#language.types.string.syntax.heredoc]syntaxe Heredoc[/url]. Elle a l'avantage de faciliter la maintenance du code HTML (pas d'échappements) ; mais, à l'instar des chaînes encadrées par des guillemets doubles, le temps d'exécution risque d'en pâtir, les variables insérées étant interprétées. Heureusement, PHP 5.3 apportera un autre compromis, alliant facilité de maintenance et rapidité d'exécution : la [url=http://fr.php.net/manual/fr/language.types.string.php#language.types.string.syntax.nowdoc]syntaxe Nowdoc[/url].