IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

echo "<pre>" n'est pas pris en compte [PHP 7]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 495
    Billets dans le blog
    1
    Par défaut echo "<pre>" n'est pas pris en compte
    Bonjour,

    je suis passé à PHP8 dimanche dernier (pas encore possible sur DVP de le signaler ) et depuis, l'instruction echo "<pre>"; n'est plus prise en compte ! En effet, j'ai une méthode de debug :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     static public function debug($location, $var)
        {
            /*exemple d'appel : UtilFct::debug("Record.php 162 data deb de analyze_ticket ",self::$data);*/
            echo "<br/>".(is_string($location))?$location:''."<br/>";
            echo "<pre>";/*la variable $location sert à indiquer le nom du fichier et le numéro de la ligne où on a appelé la fonction car quand on a plus besoin, on sait plus où on l'a placé !*/
            var_dump($var);
            echo "</pre><br/>";
        }
    qui utilise cette instruction (ligne 5) et quand je regarde le code html généré :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    csvimportcontroller 136 errors <pre>string(2809) "For SESA=SESA10038 etc
    donc il a bouffé le point-virgule. Comment faire SVP ?

  2. #2
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 986
    Par défaut
    Rien à voir avec la version de PHP. Je dirais un mauvais placement de parenthèses à la ligne du dessus:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<br/>" . (is_string($location)?$location:'') . "<br/>";
    Qu'on peut aussi écrire comme ça (pourquoi faire une concaténation lorsqu'on peut s'en passer):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo '<br/>',
         ( is_string($location) ? $location : '' ),
         '<br/>';

  3. #3
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 495
    Billets dans le blog
    1
    Par défaut
    C'est que je ne connaissais pas cette possibilité d'arguments multiples passés à echo...

    Le lien avec le passage en PHP8 est que j'ai introduit ce bug en même temps...

  4. #4
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 986
    Par défaut
    D'ailleurs le fait d'utiliser les multiples arguments séparés par des virgules avec echo règle le problème de précédence qui se posait avec le point, ce qui fait que tu peux très bien te passer des parenthèses autour de ton test ternaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo '<br/>',
         is_string($location) ? $location : '',
         '<br/>';

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 09/08/2006, 11h00
  2. Problème avec un div qui n'est pas pris en compte
    Par boss_gama dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 25/07/2006, 16h32
  3. Réponses: 5
    Dernier message: 01/07/2006, 12h52
  4. Mon script cron n'est pas pris en compte
    Par tomnie dans le forum Linux
    Réponses: 11
    Dernier message: 31/03/2004, 11h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo