Array mit oder ohne Anführungszeichen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Array mit oder ohne Anführungszeichen

    Hey Folks,

    ich bin hier gerade so am rumwerken und bemerke eine Interessante begebenheit:
    In einem Templatesystem, wo ich leider nicht weiß, welches es ist, werden Arrays
    ohne '' <- Anführungszeichen (die heißen bestimmt anders!) verwendet.

    also: $array[value]
    anstatt: $array['value']

    kann mir das jmd kurz erklären?
    Design & Coding with a breeze of madness at xjonx

  • #2
    Ich würde darauf tippen, das value bei deiner Template-Engine ein Platzhalter ist, der ersetzt wird ducrch eine Variable oder einen String mit Hochkommata.
    it's not a bug,
    it's a feature!

    Comment


    • #3
      hmm... letztlich ja, gut idee.
      ich muss mal schauen was
      das für ne bewandniss hat...
      Design & Coding with a breeze of madness at xjonx

      Comment


      • #4
        nee, wohl eher nicht. oder meinst du ernsthaft das im PHP-Code ersetzungen gemacht werden.

        wenns im template steht, wird das komplette konstrukt der platzhalter sein
        und
        wenns im code steht, da hat da mal wieder jemand unsauber programmiert und erhält nen haufen notices.

        Comment


        • #5
          das fällt mir auch auf: es wird nicht im template, sodern in den funktionsdateien verwendet.
          daher läuft es dann wohl auf die schlampe hinaus...

          aber das es überhaupt geht, weil ich hab es auch mal probiert und es ging nicht.
          Design & Coding with a breeze of madness at xjonx

          Comment


          • #6
            hauptsache erstmal nen thread aufgemacht und dann nachgedacht/-guckt.

            Doch es geht. Ich tippe mal eher darauf, dass dein Code noch schlechter war.

            Comment


            • #7
              Original geschrieben von xJonx
              aber das es überhaupt geht, weil ich hab es auch mal probiert und es ging nicht.
              Es wäre korrekt unter der Bedingung, dass eine Konstante names value definiert ist (Konstante mit kleingeschriebenem Namen dürfte aber im allgemeinen dann wieder als schlechter Stil gelten, gängige Konventionen geben Benennung in Großbuchstaben vor).

              Unter Array do's und don'ts - Warum ist $foo[bar] falsch? findest du eine ausführlichere Erklärung, warum es falsch ist, wenn value keine definierte Konstante darstellt.

              Zitat:
              Es ist falsch, funktioniert aber.
              Bei scharf eingestelltem error_reporting bekommst du in solchen Fällen eine entsprechende Warnmeldung.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Comment


              • #8
                ah, cool ... danke
                Design & Coding with a breeze of madness at xjonx

                Comment


                • #9
                  Korrekt wäre aber auch:
                  PHP Code:
                  echo $bla[5
                  Bzw. wenn das Array so definiert sein würde
                  PHP Code:
                  $bla = array('5' => 'fünf'); 
                  wäre der Befehl
                  PHP Code:
                  echo $bla[5
                  wieder nicht korrekt, oder?
                  Mein Audio-Player · Mein Computer

                  Comment


                  • #10
                    Korrekt wäre aber auch:
                    PHP:
                    echo $bla[5]
                    ja, weil fünf ein integer ist und dann auf den 6. index zeigt.
                    wäre der Befehl
                    PHP:
                    echo $bla[5]
                    wieder nicht korrekt, oder?
                    jupp, weil es a) keinen 6. index gibt und b) "5" ein String ist.

                    Comment


                    • #11
                      jupp, weil es a) keinen 6. index gibt und b) "5" ein String ist.
                      Naja... Da ist die Typekonvertierung von PHP wieder sehr aktiv!! GRRR...
                      (evtl sogar versionsabhängig)
                      PHP Code:
                      $t = array();
                      $t[1] = 27;
                      $t['2'] = 56// der index mutiert zu (int)2 Grrr.....
                      $t[3.1] = 77// die mutation zu (int)3 kann man ja noch verstehen
                      $t['3.45'] =  23// jetzt wirds doof

                      var_export($t);
                      foreach(
                      $t as $k => $v)
                         if(
                      is_string($k))
                         {
                            echo 
                      " <br>$k  ist ein String";
                         }else
                         {
                            echo  
                      " <br>$k  ist kein String";
                         } 
                      Das wird alles so von PHP ohne Meldung weggesteckt!!
                      Last edited by combie; 03-01-2007, 20:08.
                      Wir werden alle sterben

                      Comment


                      • #12
                        php halt, nur deswegen hat dieses forum so viele user...

                        Comment


                        • #13

                          Und allen "richtigen" Programmieren stellen sich die Nackenhärchen auf,
                          wenn sie nur PHP hören


                          Die schwache Typisierung dieser Sprache dürfte das größte Manko sein..
                          (hat mich schon lange Stunden, fast bis zum dulldrehn, gekostet)
                          Hoffendlich wird wirklich mit PHP6 ein Typesichers switch() Konstrukt eingeführt, so daß man auf das leicht perverse switch(TRUE) verzichten kann..
                          Last edited by combie; 04-01-2007, 14:02.
                          Wir werden alle sterben

                          Comment


                          • #14
                            Original geschrieben von combie

                            Und allen "richtigen" Programmieren stellen sich die Nackenhärchen auf,
                            wenn sie nur PHP hören


                            Die schwache Typisierung dieser Sprache dürfte das größte Manko sein..
                            (hat mich schon lange Stunden, fast bis zum dulldrehn, gekostet)
                            Hoffendlich wird wirklich mit PHP6 ein Typesichers switch() Konstrukt eingeführt, so daß man auf das leicht perverse switch(TRUE) verzichten kann..
                            im grunde hast du echt recht! und ich kann nur zu gut verstehen, welche probleme einige bekommen, wenn sie mit php anfangen! Um sicher mit typen umgehen zu können, ist eigentlich schon eine sprache wie C nötig! Aber php ist einfach DIE sprache im inet!!
                            naja, solange wir alle unsere arrays korrekt verwenden...

                            Comment


                            • #15
                              Ich wollte noch danke für die "tollen" antworten sagen
                              Design & Coding with a breeze of madness at xjonx

                              Comment

                              Working...
                              X