2010-09-14 6 views
-1
$text . = '1 paragraph'; 
$text . = '2 paragraph'; 
$text . = '3 paragraph'; 
echo $text; 

Ce code donne l'erreur syntax error, unexpected '='.Pourquoi ce code produit-il "erreur de syntaxe, inattendu" = ""?

Quel est le problème?

+2

Il n'y a pas de lignes de données multiples dans ce code. ainsi que pas de variables multiples à fusionner en un seul. Vous feriez mieux d'expliquer en termes de langage naturel, pas PHP, qu'est-ce que vous essayez d'atteindre –

+3

* soupir et -1 * Vous êtes à bord assez longtemps pour savoir que "ne fonctionne pas" n'est pas une description valide d'un problème . –

+0

@Happy J'ai longtemps supprimé mon downvote depuis que vous avez ajouté le message d'erreur. –

Répondre

7

Je pense que vous voulez:

$text = '1 paragraph'; 
$text .= '2 paragraph'; 
$text .= '3 paragraph'; 
echo $text; 

Notez que la première ligne n'utilise pas .= et utilise seulement =

+0

vraie réponse, merci l'homme. – James

+3

@Happy: Heureux d'aider –

4

L'espace entre le point et l'égalité? .= au lieu de . =

+0

ne fonctionne toujours pas, dit "erreur de syntaxe, inattendu" = '" – James

+0

@Happy cela devrait fonctionner. "$ text. = '1 paragraph'' –

+0

Heureux, êtes-vous sûr que l'erreur de syntaxe vient de cette commande et pas n'importe où, la concaténation est les bases brutes de programmation et en utilisant la ligne Pekka a déclaré WILL fonctionnera. – RobertPitt

4

Si vous allez tout sortir de toute façon, alors pourquoi concaténer du tout? Il suffit de l'écho:

echo '1 paragraph', 
    '2 paragraph', 
    '3 paragraph'; 
+1

La virgule (,) est plus rapide que le point (.) Pour obtenir la concaténation en écho. – aWebDeveloper

+1

@WebDeveloper L'utilisation de ',' n'est pas du tout concaténée. C'est juste passer plusieurs arguments à 'echo' et les envoyer directement à la sortie. Lorsque vous utilisez '.'vous concatéez les arguments * avant de les passer à' echo'. Que vous utilisiez ',' ou '.', voici une optimisation μ qui ne vaut pas la peine d'être mentionnée. – Gordon

1

peut également écho comme celui-ci

echo '1 paragraph'.'2 paragraph'.'3 paragraph';

2

D'autres ont e déjà signalé l'erreur: espace entre . et =.

Il s'agit d'une erreur de syntaxe/analyse. Lorsque PHP voit le . suivi d'espace, il prend . comme un jeton distinct qui est utilisé pour la concaténation de chaîne. Maintenant, il attend une chaîne ou une variable après. Mais quand il voit le = il jette l'erreur d'analyse car elle ne correspond pas à la grammaire PHP.

Questions connexes