Aller au contenu

PB de syntaxe


Grantome

Sujets conseillés

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

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

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é par Dash
Lien vers le commentaire
Partager sur d’autres sites

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

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

<?php
error_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é par Dash
Lien vers le commentaire
Partager sur d’autres sites

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

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...