Anfängerfrage

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

  • Anfängerfrage

    bitte nicht lachen, aber ich stehe gerade völlig auf dem schlauch.
    PHP-Code:
    $sum1=1;
    $sum2=2;

    echo 
    'summe: '.$sum1+$sum2
    ausgabe: 2
    erwartete ausgabe: summe: 3

    echo 'summe: ',$sum1+$sum2; macht das gewünschte.

  • #2
    setz mal ne klammer um die berechnung, dann sollte es klappen.

    Kommentar


    • #3
      ja, danke - der groschen ist gefallen

      dieses "hinterhältige" type casting von php.

      Kommentar


      • #4
        formal gesprochen geht es nicht um das type casting, sondern um die assoziativität von operatoren.

        zwar haben "." und "+" die gleiche priorität, doch sind sie linksassoziativ, d.h. dein ausruck impliziert folgende klammersetzung:
        PHP-Code:
        echo ( ( ('summe: ').$sum1 ) + $sum2 ); 
        das type casting, von dem du gesprochen hast, greift nun offensichtlich bei der addition eines strings mit einer ganzen zahl ein.

        Kommentar


        • #5
          Original geschrieben von penizillin
          das type casting, von dem du gesprochen hast, greift nun offensichtlich bei der addition eines strings mit einer ganzen zahl ein.
          ja, so meinte ich das eigentlich.
          danke für deine ausführung, du hast mich auf eine idee gebracht:
          PHP-Code:
          $fak1=2;
          $fak2=3;

          echo 
          'produkt: '.$fak1*$fak2
          ausgabe: "produkt: 6"

          * hat wiederum eine höhere priorität - ganz schön tricky

          Kommentar


          • #6
            Ich würd einfach immer klammern rumsetzen, dann hat man das Problem nicht. Allerdings denk ich, dass * halt einfach aufgrund Mathematischer Regeln vor dem . kommt, wenn . und + gleich sind (gute Punkt vor Strich Regel)

            Kommentar

            Lädt...
            X