Theo: Index einer Variable wird nicht dargestellt.

Folgendes Problemchen:

Ich möchte mir nur die letzten beiden Ziffern des Jahres ausgeben lassen, was ich nur hinbekomme, solange ich die Jahresvariable nicht bearbeite:
--------------------------------------------
$test="2008";
echo"<br>Ausgabe ($test): $test[2]$test[3]";
$test--;
echo"<br>Ausgabe ($test): $test[2]$test[3]";
--------------------------------------------
Die Ausgabe Sieht dann folgendermaßen aus:
--------------------------------------------
Ausgabe (2008): 08
Ausgabe (2007):
--------------------------------------------
Ich muss sicherlich der $testvariable nach der bearbeitung ein richtiges Format verpassen.

Frage also: Welches Format, und wie mache ich das?

Vielen Dank für Eure Hilfe

Gruß

  1. Hello,

    $test--;

    Was ergibt denn
       Theo--       ?

    Ein harzliches Glückauf

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Was ergibt denn
         Theo--       ?

      Sehr Hilfreiches Kommentar - Danke :(

      Ich habe doch schon gesagt, dass es am Typen liegen muss und wollte nur wissen wie ich das mache. Nehme Dir ein Beispiel an Ekki: Der gibt mir nicht nur ein Lösungsvorschlag, sondern gibt mir darüber hinaus auch noch ein Link, unter dem ich die Typenänderung nachlesen kann. Dein BEitrag war völlig Hochnäsig, wie hier leider viel zu viel sind. Ein Forum ist zu helfen da, nicht zum schikanieren oder auslachen...

      1. Gudn!

        Sehr Hilfreiches Kommentar - Danke :(

        Durchaus - wenn Du genauer drüber nachdenkst.

        Ich habe doch schon gesagt, dass es am Typen liegen muss und wollte nur wissen wie ich das mache. Nehme Dir ein Beispiel an Ekki: Der gibt mir nicht nur ein Lösungsvorschlag, sondern gibt mir darüber hinaus auch noch ein Link, unter dem ich die Typenänderung nachlesen kann. Dein BEitrag war völlig Hochnäsig, wie hier leider viel zu viel sind. Ein Forum ist zu helfen da, nicht zum schikanieren oder auslachen...

        Ich sehe keine Hochnässigkeit. Der Beitrag ist zwar knapp und ohne viel blabla, aber er bringts auf den Punkt. Ein Anstoß zum nachdenken also.

        Es gibt Leute wie EKKi, die sehr ausführlich auch bei banalen Dingen antworten und andere die einfach einen Gedanken liefern, auch wenn er im ersten Moment kryptisch erscheinen mag.

        Dankbar sollte man für jede Art von kostenloser Hilfe sein, insbesondere wenn _kein_ persönlicher Angriff erfolgt. Und das Tom das nicht "böse" meinte, dafür würde ich glatt meine Hand ins Feuer legen :)

        Gruß aus Fürth in Mittelfranken,
        Samoht

        --
        fl:| br:> va:) ls:< n4:( ss:) de:] js:| mo:}
        "Lieber Fünfter als Fürther" :)
        "Computer games don't affect kids; I mean if Pac-Man affected us as kids, we'd all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music."
        (Marcus Alexander Brigstocke)
        1. Mahlzeit,

          Es gibt Leute wie EKKi, die sehr ausführlich auch bei banalen Dingen antworten und andere die einfach einen Gedanken liefern, auch wenn er im ersten Moment kryptisch erscheinen mag.

          Wobei ich auch gern mal letzteres mache ... ;-)

          MfG,
          EKKi

          --
          sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
      2. Hello lieber Theo,

        Was ergibt denn
           Theo--       ?

        Sehr Hilfreiches Kommentar - Danke :(

        entschuldige bitte.
        Ich saß gerade im Klassenzimmer und plötzlich ging es weiter. Da wollte ich die Anregung nicht unterschlagen und habe sie noch ohne Kommentar abgeschickt.

        Grundsätzlich hat PHP das Manquo, dass es kein echtes Typecasting (auf Speicherebene) unterstützt, genauso wie es auch eigene Datentypen (Strukturen, Records) nur mäßig unterstüzt.

        Aber genau für Deinen Fall wäre das bisschen, was PHP da kann, vielleicht das passende.

        Schau Dir mal

        pack()     http://de2.php.net/manual/en/function.pack.php und
        unpack()   http://de2.php.net/manual/en/function.unpack.php

        an.

        Ein harzliches Glückauf

        Tom vom Berg

        --
        Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
  2. Mahlzeit,

    $test="2008";

    Hier ist der Inhalt von $test ein String.

    echo"<br>Ausgabe ($test): $test[2]$test[3]";

    Also kannst Du hier auf die einzelnen Teilstrings zugreifen.

    $test--;

    Hier macht PHP eine implizierte Typumwandlung, anschließend ist der Inhalt kein String mehr, sondern ein numerischer Typ ...

    echo"<br>Ausgabe ($test): $test[2]$test[3]";

    ... der natürlich keine Teilstrings besitzt.

    Ich würde es ungefähr folgendermaßen machen:

      
    $test = 2008;  
    echo "<br>Ausgabe ($test): ".substr((string) $test, -2, 2);  
    $test--;  
    echo "<br>Ausgabe ($test): ".substr((string) $test, -2, 2);
    

    (Typumwandlung in PHP)

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
    1. Hervorragend, vielen Dank auch für den Link.

      Gruß Theo