[Variablen] charAt

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Variablen] charAt

    Hallo,

    ich suche die passende Funktion von charAt() aus Java für PHP. Wenn ich eine Integerzahl in der Variable $i haben, wie komme ich an die Zahl an der x-ten Stelle?

    Danke
    Zuletzt geändert von Tarlar; 20.02.2007, 00:59.

  • #2
    substr() fällt mir da ein.
    ist zwar kein string, aber php nimmt es da nicht so genau

    Kommentar


    • #3
      hauptsache du denkst nicht so, wie du schreibst.
      http://de.php.net/manual/en/language....string.substr

      edit: oder willst du an eine ziffer in einer zahl drankommen? das hat aber nichts mit charAt zu tun. da musst du noch mal selbst nachdenken:

      geg.: i = 4711
      ges.: zweite ziffer von links.

      zweite ziffer von links in einer vierstelligen zahl entspricht den "huntertern":

      4711 = 4000 + 700 + 10 + 1

      wie kommt man jetzt an die 700 (und somit an die 7) dran?
      Zuletzt geändert von penizillin; 20.02.2007, 00:21.

      Kommentar


      • #4
        @pezzi, das funktioniert nicht, hatte ich auch probiert.
        einen int kann man nicht als array ansperechen, wie einen string.

        $zahl=123456789;

        var_dump( $zahl[4]);

        ergibt null, als string funzt es jedoch.

        Kommentar


        • #5
          vollkommen richtig, daher "edit".

          Kommentar


          • #6
            @3DMax: Man benutzt mittlerweile nicht mehr die [] sondern {}


            -> $string[4] wird also zu $string{4}


            (Ändert aber nichts an der Tatsache, dass man erstmal einen Typecast oder settype benutzen muss, um den Integer in einen String zu konvertieren und damit den direkten Zugriff zu ermöglichen)
            Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
            var_dump(), print_r(), debug_backtrace und echo.
            Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
            Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
            Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

            Kommentar


            • #7
              Original geschrieben von Shurakai
              @3DMax: Man benutzt mittlerweile nicht mehr die [] sondern {}
              hm, jetzt bin ich leicht verwirrt. im manual, siehe penizillins link, steht:
              Characters within strings may be accessed and modified by specifying the zero-based offset of the desired character after the string using square array-brackets like $str[42] so think of a string as an array of characters.

              Note: They may also be accessed using braces like $str{42} for the same purpose. However, using square array-brackets is preferred because the {braces} style is deprecated as of PHP 6.
              im deutschen wiederum:
              Innerhalb von Zeichenketten (strings) kann durch die Angabe des nullbasierten Offsets in geschweiften Klammern nach dem String auf das gewünschte Zeichen zugegriffen oder dieses modifiziert werden.

              Anmerkung: Für Abwärtskompatibilität können Sie für den selben Zweck immer noch die Array-Klammern verwenden. Diese Syntax wird jedoch seit PHP 4 missbilligt.
              sin irgendwie widersprüchliche aussagen. was stimmt denn nun?

              Kommentar


              • #8
                die englischsprachige version ist meist ein wenig aktueller.
                de: Last updated: Sat, 03 Feb 2007
                en: Last updated: Fri, 16 Feb 2007

                Kommentar


                • #9
                  Ich habe gerade mal eine E-Mail an die PHP-Developer-Mailingliste geschickt. Mal sehen was da zurückkommt.
                  Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
                  var_dump(), print_r(), debug_backtrace und echo.
                  Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
                  Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
                  Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

                  Kommentar


                  • #10
                    Das hier habe ich u.A. als Antwort erhalten:

                    Originally written by Robert Cummings
                    Use [], internals recently (7 months or so ago) reversed their opinion
                    of on deprecating [] for strings in favour of {}. The {} almost got
                    deprecated itself, but was saved in lieu of user feedback on internals.
                    So it would seem [] is the superior choice and {} may someday get cut.
                    This is in spite of the PHP group original recommending {}.
                    D.h. also ab sofort wieder [] verwenden
                    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
                    var_dump(), print_r(), debug_backtrace und echo.
                    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
                    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
                    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

                    Kommentar


                    • #11
                      danke für die info.
                      dass man die geschweiften klammern benutzen sollte, hatte ich auch im hinterkopf. mit dieser syntax konnte ich mich aber nie so recht anfreunden und habe desshalb immer die eckigen klammern benutzt. damit war ich wohl nicht allein, wenn jetzt selbst die php-entwickler dem druck der masse nachgeben.

                      Kommentar

                      Lädt...
                      X