Grantome Posté 18 Novembre 2004 Partager Posté 18 Novembre 2004 Salut, Comment ecrire ça correctement pour ne pas avoir d'erreur ? J'ai essayé comme ceci: echo "<td>$aff[$tab2[$u]]</td>"; Parse error: parse error, unexpected '[', expecting ']' on line 43 Normal.... Donc, j'ai essayé comme ceci: echo "<td>$aff['$tab2[$u]']</td>"; Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING on line 43 Merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
Grantome Posté 18 Novembre 2004 Auteur Partager Posté 18 Novembre 2004 Bon, j'ai fais autrement... Plus lourd, mais ça fonctionne. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Titag Posté 18 Novembre 2004 Partager Posté 18 Novembre 2004 Salut, Tu as fait comment ? Parce que pour faire des tableau à 2 dimensions, la syntaxe correcte de ce que tu as ecrit intuitivement c'est : echo $aff[$tab2][$u]; Lien vers le commentaire Partager sur d’autres sites More sharing options...
Compte supprimé Posté 18 Novembre 2004 Partager Posté 18 Novembre 2004 C'est pas un tableau à 2 dimensions mais un tableau à 1 dimension. Tu ne peux laisser dans les chaines que les variables simples. Dans ton cas il fait concatener : echo "<td>".$aff[$tab2[$u]]."</td>"; Cordialement, Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dash Posté 18 Novembre 2004 Partager Posté 18 Novembre 2004 sans recourir a la concatenation, vous pouvez utiliser des accolades : echo "<td>{$aff[$tab2[$u]]}</td>"; Lien vers le commentaire Partager sur d’autres sites More sharing options...
Compte supprimé Posté 18 Novembre 2004 Partager Posté 18 Novembre 2004 Ce ne serait pas plutôt echo "<td>${aff[$tab2[$u]]}</td>"; ?? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dash Posté 18 Novembre 2004 Partager Posté 18 Novembre 2004 (modifié) c'est ici equivalent. Mais si vous regardez plus loin (classes, etc.) vous pourrez constater que la syntaxe suivante ne fonctionne pas : echo "pres-texte ${instance->methode()} post-texte"; contrairement a : echo "pres-texte {$instance->methode()} post-texte"; Alors pourquoi ne pas prendre des "bonnes" habitudes pour pouvoir conserver la meme syntaxe dans tous les cas ? Modifié 19 Novembre 2004 par Dash Lien vers le commentaire Partager sur d’autres sites More sharing options...
Anonymus Posté 19 Novembre 2004 Partager Posté 19 Novembre 2004 c'est ici equivalent. Mais si vous regardez plus loin (classes, etc.) vous pourrez constater que la syntaxe suivante ne fonctionne pas : contrairement a : Alors pourquoi ne pas prendre des "bonnes" habitudes pour pouvoir conserver la meme syntaxe dans tous les cas ? <{POST_SNAPBACK}> Dash, Je n'ai pas compris. Tu n'aurais pas une erreur de copier/coller ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dash Posté 19 Novembre 2004 Partager Posté 19 Novembre 2004 (modifié) je me suis peut-etre mal explique... Pour des objets "simples", il y a equivalence entre mettre l'accolade avant ou apres le symbole '$'. echo "<td>${aff[$tab2[$u]]}</td>"; produira un resultat equivalent a echo "<td>{$aff[$tab2[$u]]}</td>"; Par contre, si l'on manipule des objets plus "complexes" (classes et autres), mettre l'accolade avant ou apres le symbole '$', provoquera des effets differents. voici un exemple avec simplexml <?phperror_reporting( E_ALL );$content = <<<HERE_DOC<?xml version="1.0" encoding="iso-8859-1"?><root> <element1>ValOfText</element1></root>HERE_DOC;$xml = simplexml_load_string($content);echo "pre-texte - ${xml->element1} - post-texte";?> L'ecriture "${xml->element1}" produit une erreur, contrairement a "{$xml->element1}" qui affiche une valeur. Au vu de cela, je suggere de prendre l'habitude de mettre systematiquement l'accolade avant le symbole '$'. Pour pouvoir toujours garder la meme construction syntaxique quelque soit le type d'objet(s) a traiter Modifié 19 Novembre 2004 par Dash Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 19 Novembre 2004 Partager Posté 19 Novembre 2004 je me suis peut-etre mal explique... Tu as surtout choisi les mauvais exemples... regardes ton post précédent: tu mets deux fois le même exemple en disant que l'un marche et l'autre pas Il faut lire: Mais si vous regardez plus loin (classes, etc.) vous pourrez constater que la syntaxe suivante ne fonctionne pas :echo "pres-texte ${instance->methode()} post-texte";contrairement a :echo "pres-texte {$instance->methode()} post-texte"; Dan Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dash Posté 19 Novembre 2004 Partager Posté 19 Novembre 2004 message edite. merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant