2009-08-20 3 views
-1

de Doublons possibles:
How do I use that “<<<HTML” thing in PHP?
PHP <<<EOBQu'est-ce que c'est en PHP? Code multiple pour une variable

$sql = <<<MySQL_QUERY 
    CREATE TABLE IF NOT EXISTS testDB (
    title VARCHAR(150), 
    bodytext TEXT, 
    created VARCHAR(100) 
) 
    MySQL_QUERY; 

J'ai vu des gens utiliser ce qui précède pour inclure plusieurs lignes de chaîne et le mettre à une variable, se demandait s'il y a un nom pour ce genre d'utilisation? Alors que je peux le chercher.

+1

Dupe au moins quelques fois: http://stackoverflow.com/questions/1048481/php-eob http: // stackoverflow.com/questions/571894/how-do-i-write-the-toc-thing-in-php http://stackoverflow.com/questions/1040578/how-do-i-write-this-out- in-php-where-i-would-utiliser-le-à-imprimer-contenu-contenu http://stackoverflow.com/questions/1203479/how-do-i-use-that-html-thing-in- php – karim79

+2

C'est une dupe, mais les dupes sont difficiles à trouver si vous ne savez pas chercher 'heredoc'. –

+0

@Tom Haigh - bon point, pensez-vous que des questions comme «que diable est cette syntaxe» devraient être des exceptions à la règle dupe? – karim79

Répondre

10

Heredoc syntax:

Une troisième façon à délimiter string s est la syntaxe de heredoc: < < <. Après cet opérateur, un identifiant est fourni, puis une nouvelle ligne. Le string lui-même suit, puis le même identifiant pour fermer la citation.

L'identifiant de fermeture doit commencer dans la première colonne de la ligne. En outre, l'identificateur doit suivre les mêmes règles de nommage que toute autre étiquette en PHP: il doit contenir uniquement des caractères alphanumériques et des traits de soulignement, et doit commencer par un caractère non-caractère ou un trait de soulignement.

Avertissement Il est très important de noter que la ligne avec l'identifiant de fermeture ne doit pas contenir d'autres caractères, à l'exception d'un point-virgule (;). Cela signifie en particulier que l'identifiant ne doit pas être indenté, et qu'il n'y a pas d'espaces ou d'onglets avant ou après le point-virgule. Il est également important de réaliser que le premier caractère devant l'identifiant de fermeture doit être un retour à la ligne tel que défini par le système d'exploitation local. C'est \ n sur les systèmes UNIX, y compris Mac OS X. Le délimiteur de fermeture doit également être suivi d'une nouvelle ligne. Si cette règle est brisée et que l'identifiant de fermeture n'est pas "propre", il ne sera pas considéré comme un identifiant de fermeture, et PHP continuera à en chercher un. Si un identificateur de fermeture correct n'est pas trouvé avant la fin du fichier en cours, une erreur d'analyse se produira à la dernière ligne. Heredocs ne peut pas être utilisé pour initialiser les propriétés de classe.

Depuis PHP 5.3, cette limitation est valable uniquement pour les Heredoc contenant des variables ...

+0

Paolo a de nouveau gagné le combat, mais c'est un dupe dupe dupe. – karim79

+1

Oo, honte à moi. J'ai même répondu à l'un des dupes! :( –

+0

@Paolo Bergantino - J'aurais répondu à cela aussi, je suis juste un mauvais perdant :( – karim79

Questions connexes