PHP: echo et guillemets

12 sujets de 1 à 12 (sur un total de 12)

  • fenrix

      #418

      Bonjour

      je suis en train de me plonger dans le PHP et j’ai des problèmes avec l’utilisation des guillemets

      quand je mets la ligne suivante, j’ai une ‘parse error’ qui est retournée. Quelle est la syntaxe correcte?

      echo « 

      Votre commentaire: $_REQUEST

      « ;

      Quelles sont les regles d’utilisation des guillemets simples et doubles, je suis un peu perdu dans la doc…

      Merci

      PS: je suis sur free pour voir mes pages php

      fenrix

        #16873

        Merci de ta réponse

        je me suis rendu compte que si je fais un copiez collez du code depuis la page du tutorial ou je l’ai trouve, ca foire. Par contre si je réécris à l’identique la ligne, il l’accepte sans problème…

        Il y a des caractères spéciaux invisibles qui se promènent?

        Grrr…

        hombre

          #16874

          La syntaxe correct, c’est d’omettre le guillement autour de texte. C’est à dire qu’il faut écrire :

          echo « 

          Votre commentaire: $_REQUEST[texte]

          « ;

          C’est une particularité de l’usage de tableau indexé par des variables dans les chaines.

          Petit truc aussi : Une chaine délimité par des guillemet double peut contenir des caractères d’échappement et des variables ( sauf les propriété objets, du genre voiture->couleur ), alors qu’une chaine délimité par des guillemets simple n’accepte rien de tout cela, elle n’est pas interprété !

          fenrix

            #16875

            Ok merci

            pour la différence entre les guillemets simples et doubles, j’ai vais vu ca dans la doc. Mais c’est leur utilisation qui me faisait cafouiller.

            Sinon, j’ai trouver cette ligne de code

            if(@ !$p) $p=1

            Qu’est ce que le « @ » veut dire?

            hombre

              #16876

              Cela signifie : « Ne pas sortir de message d’avertissement si cette variable n’existe pas/n’est pas initialisé. »

              En effet, une variable utilisée dans un test alors qu’elle n’aurait pas été préalablement déclaré génèrerait un résultat aléatoire, et donc un message d’avertissement au cas où les options de débogage les demanderais.

              Avant que « Register globals » soit OFF par défaut, les champs de saisie dans les formulaires HTML créaient des variables du même nom (ce qui pouvait interférer sur des variable du même nom déclaré dans les script, raison pour laquelle cette option est dévalidée par défaut). Mais l’utilisateur pouvait légitimement supposer leur existence…

              Dans ton exemple, cela devient évident :

              Si $P est null alors $P=1

              Perso, je l’aurais écrit :

              if (!is_set(@$P) $P=1; // pas sur de la syntaxe, mais c’est qqchose comme çà !

              [edit]

              Je ne sais pas si tu l’as déjà, mais tu peux trouver la doc de PHP4 en français sur internet (http://www.php.net)

              hombre

                #16878

                @Fab1

                Par rapport à la syntaxe incorrect présenté par Fenrix, dans les 2 solutions que tu proposes, il faut taper 4 caractères supplémentaires par variable de ce genre, et dans ma solution, on en tape 2 de moins…

                Mais bon, chacun fait comme il veut :-D !

                Ceci-dit, je ne connaissait pas la syntaxe avec les accolades…

                fenrix

                  #16879

                  @fab1 oui, ta proposition était bonne ;)

                  Mais je suis assez d’accord avec toi, ça m’a l’air d’être assez ‘souple’ comme language :s La même ligne pouvant être écrite de 4 ou 5 manières différentes… ca m’a l’air d’être facilement un beau foutoir :p


                  @hombre

                  merci pour ton explication

                  le ‘!’ c’est bien un signe pour dire « ne pas »/ »n’est pas »?

                  pour le manuel, j’utilise fr2.php.net/manual/fr

                  ca doit etre le même non?

                  et je m’aide de http://www.phpfrance.com

                  /me préférait ses débuts en JavaScript, c’était plus carré

                  Si vous avez d’autres sites clairs pour débuter en php je suis preneur :)

                  Encore merci

                  hombre

                    #16880

                    fenrix a écrit :

                    merci pour ton explication

                    le ‘!’ c’est bien un signe pour dire « ne pas »/ »n’est pas »?

                    Comme dans la plupart des langages, oui… Comme quoi, c’est un peu carré quand même ;-)

                    pour le manuel, j’utilise fr2.php.net/manual/fr

                    ca doit etre le même non?

                    et je m’aide de http://www.phpfrance.com

                    Oui, c’est le même, mais je l’ai téléchargé pour l’utiliser hors-ligne. Mais il n’y a pas les commentaires utilisateurs !

                    Lanza

                      #16881

                      @fab1, L’accès à un tableau associatif n’a pas besoin des guillemets, qu’il soit ou non dans une chaîne; ce n’est pas une exception.


                      @fenrix
                      , je ne trouve pas le javascript plus carré. C’est même encore plus le foutoir puisque les objets accessibles dépendent du navigateur.

                      fenrix

                        #16882

                        @ Lanza

                        c’est sur mais dans la syntaxe, je trouvais ça plus rigoureux. Enfin ca n’engage que moi et mon expérience est assez limitée, juste de quoi faire un ou deux scripts pour animer une page web :)

                        hombre

                          #16883

                          Oula… T’es sûr de ce que tu dit là ?

                          Parce qu’à ce qu’il me semble que seul les noms issus de DEFINE peuvent être utilisé sans guillemet pour indexer un tableau qui ne soit pas dans une chaîne (en plus des variables, bien sûr)

                          Lanza

                            #16884

                            Je l’ai utilisé assez souvent en 2000-2003 pour savoir que ça marche, oui :)

                            Je viens de faire un tour sur la doc et il disent que ça n’est pas bien de le faire dans les versions récentes de php (j’ai utilisé jusqu’à la 4.2, moi). Dommage c’était pratique. Et si j’en crois la doc, chaîne ou pas chaîne, ça ne change rien par contre.

                            http://www.php.net/manual/fr/language.types.array.php

                            (voir l’exemple 6-26)

                            Edit: /me se marre à l’idée que tous les scripts qu’il a fait poru son ancienne boîte se foutent par terre avec les prochaines version de php… :-D

                          12 sujets de 1 à 12 (sur un total de 12)

                          • Vous devez être connecté pour répondre à ce sujet.

                          Forums AmigaOS, MorphOS et AROS Développement PHP: echo et guillemets

                          Amiga Impact