Empêcher PHP d'interpréter de nouvelles lignes dans des strings dans le code source

Je dois souvent atsortingbuer de grandes strings aux variables. Dans le code source, je souhaite de preference garder mes lignes dans 80 caractères.

Idéalement, je souhaite pouvoir mettre ces strings littérales sur plusieurs lignes.

Ce que je veux éviter, c'est utiliser la concaténation ou les appels de fonction (p. preg_replace() . preg_replace() ), pour associer plusieurs strings preg_replace() en un seul. Je n'aime pas l'idée que je dois invoquer des fonctionnalités de langue afin d'améliorer le style de mon code.

Exemple de quelque chose que je voudrais:

  $text = <<<TEXT Line 1 Line 2 Line 3 TEXT; echo($text); 

Cela devrait produire:

 Line1Line2Line3 

Est-ce possible?

    Il existe quelques options:

    1. Concrètement juste (préféré)

    2. Utiliser des constructions de array

    3. Utiliser sprintf()

    Concrètement juste:

     echo 'long long line1' . 'another long line 2' . 'the last very long line 3'; 

    Qu'en est-il de l'efficacité?

    Le code ci-dessus se comstack dans les opcodes suivants (qui est ce qui s'exécute):

     5 0 > CONCAT ~0 'long+long+line1', 'another+long+line+2' 1 CONCAT ~1 ~0, 'the+last+very+long+line+3' 2 ECHO ~1 

    Comme vous pouvez le voir, il crée la string en concaténant les deux premières lignes, suivies de la dernière ligne; à la fin ~0 est rejeté. En termes de memory, la différence est négligeable.

    C'est ce à quoi ressemblerait une seule déclaration d' echo :

     3 0 > ECHO 'long+long+line1another+long+line+2the+last+very+long+line+3' 

    Techniquement, c'est plus rapide car il n'y a pas d'étapes intermédiaires, mais en réalité, vous ne ressentirez pas cette différence.

    Utilisation du array :

     echo join('', array( 'line 1', 'line 2', 'line 3', )); 

    Utilisation de sprintf() :

     echo sprintf('%s%s%s', 'line 1', 'line 2', 'line 3' ); 
     $text = 'Line1'. 'Line2'. 'Line3'; var_dump($text); 

    De cette façon, vous aurez votre code divisé sur plusieurs lignes, mais datatables elles-mêmes sont une seule ligne.

    Il existe plusieurs façons de concaténer des strings, mais le problème n'est pas la longueur de la string ni le formatting que vous mélangez de grandes quantités avec php.

    IMO Vraiment, si la logique de base de votre application contient une grande quantité de html, vous devriez peut-être penser à la sortir de la logique et à la charger à partir d'un file externe, de cette façon, cela améliorera la lisibilité de votre code.

    ./your_view.php

     <h1>This is my view, I only want small amounts of PHP here, values will be passed to me</h1> <p><?php echo $somevar;?></p> 

    Maintenant, dans votre base logique, vous auriez peut-être une fonction globale qui charge votre vue et lui transmet des données. alors vous pouvez contrôler l'enlèvement de nouvelles lignes.

    index.php (ou tel file logique)

     <?php function load_view($path,$data,$minify=false) { if (file_exists($path) === false){ return false; } extract($data); ob_start(); require($path); $out = ob_get_contents(); ob_end_clean(); //you can remove all the new lines here if($minify===true){ return preg_replace('/^\s+|\n|\r|\s+$/m', '', $out); }else{ return $out; } } $data = array('somevar'=>'This is some data that I want to pass to a block of html'); echo load_view('./your_view.php',$data,true); ?>