Anfängerfrage

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

  • 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.

    Comment


    • #3
      ja, danke - der groschen ist gefallen

      dieses "hinterhältige" type casting von php.

      Comment


      • #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.

        Comment


        • #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

          Comment


          • #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)

            Comment

            Working...
            X