Différence simple/double guillemet avec un array - PHP - Programmation
Marsh Posté le 31-03-2011 à 10:54:32
C'est tout simple, l’interprétation des chaines effectué par php ne lui permet de traverser qu'un seul niveau de tableau.
Code :
|
A+
Marsh Posté le 31-03-2011 à 12:15:19
Merci pour ta réponse, seulement, je n'ai même pas d'erreur parse; est-ce dû au fait que j'utilise une variable pour le deuxième niveau?
Marsh Posté le 31-03-2011 à 14:43:52
Non mais déjà à partir du moment où tu génères du code HTML qui n'est pas même de l'HTML...
Sérieusement, depuis quand on a le droit d'écrire des attributs entre simple quote en HTML ? C'est des doubles quotes, et donc ta questions ne se pose même plus...
Si on suit les recommandations de Zend et du W3C la seule syntaxe correcte est :
(cf. : http://php.net/manual/en/language.types.string.php)
Code :
|
Néanmoins tu pourrais aussi écrire :
Code :
|
Dès que la syntaxe est complexe, entre doubles quotes, les accolades aident.
Marsh Posté le 31-03-2011 à 14:47:24
Merci pour cette réponse, je me posais la question sur cette habitude, qui donc est mauvaise ! Et cool les accolades, je ne savais pas !
Marsh Posté le 02-04-2011 à 13:31:22
MEI a écrit : Non mais déjà à partir du moment où tu génères du code HTML qui n'est pas même de l'HTML... |
Non mais, n'importe quoi!
On a toujours eu le droit, et ce depuis l'ancêtre de la syntaxe HTML, ie le SGML (et peut être même le GML) d'utiliser des simples ou des doubles quotes pour délimiter les valeurs d'un attribut.
Je suis pas un spécialiste de PHP, mais comme PHP est le fils batard de Perl et d'une serveuse web, voici ce qui se passe en perl:
my $variable = "TOTO";
print "toto vaut: ", $variable; #imprimera toto vaut: TOTO
print "toto vaut: $variable"; #imprimera toto vaut: TOTO
print 'toto vaut: $variable'; #imprimera toto vaut: $variable
Bref, la double quote fait qu'il y a remplacement des variables par leurs valeurs, tandis que la simple quote fait que tout est interprété comme du texte pur, sans interprétation.
Ce n'est pas limité aux variables: print "\n" va imprimer un retour à la ligne, tandis que print '\n' va imprimer un backslash et un n.
A+,
Marsh Posté le 31-03-2011 à 10:01:29
Bonjour,
J'ai tourné un peu en rond avant de trouver la solution, mais du coup, je ne me l'explique pas du tout. Voici le code qui posait problème (il est dans une boucle d'où le $i) :
Du coup, cette méthode fonctionne
Mais je ne sais pas trop pourquoi. J'ai pour habitude (bonne ou mauvaise?) d'écrire la partie html en double guillement, et les variables à l'intérieur sans guillement ni point, ce qui fonctionne. Mais pour les array, ça change?
Merci pour vos lumières !