I have seen much, but this...

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • jodleren

    I have seen much, but this...

    I have 2 pieces of code, where one works, another does not, even they
    should be the same

    echo " <td$s $s2</td><td>$s-";
    echo $s+$s2." </td></tr>\r\n";

    which can be truncated to

    echo " <td$s $s2</td><td>$s-".$s+$s2." </td></tr>\r\n";

    All in one line, but then the first part in the "" will not be printed,
    result: 45</td></tr- a funny table.
    There should be no difference, but there is.

    $s and $s2 are integer, the entire table is for debugging. The error is
    known and I can work around this.

    But i cannot explain it.

    BR
    Sonnich

  • Moot

    #2
    Re: I have seen much, but this...

    jodleren wrote:
    I have 2 pieces of code, where one works, another does not, even they
    should be the same
    >
    echo " <td$s $s2</td><td>$s-";
    echo $s+$s2." </td></tr>\r\n";
    >
    which can be truncated to
    >
    echo " <td$s $s2</td><td>$s-".$s+$s2." </td></tr>\r\n";
    >
    All in one line, but then the first part in the "" will not be printed,
    result: 45</td></tr- a funny table.
    There should be no difference, but there is.
    >
    $s and $s2 are integer, the entire table is for debugging. The error is
    known and I can work around this.
    >
    But i cannot explain it.
    >
    BR
    Sonnich

    When doing math within a string concatenation, you need to use
    parethesis.
    So your second example becomes:
    echo " <td$s $s2</td><td>$s-". ($s+$s2) ." </td></tr>\r\n";

    Comment

    • p.lepin@ctncorp.com

      #3
      Re: I have seen much, but this...


      jodleren wrote:
      echo " <td$s $s2</td><td>$s-";
      echo $s+$s2." </td></tr>\r\n";
      >
      which can be truncated to
      >
      echo " <td$s $s2</td><td>$s-".$s+$s2." </td></tr>\r\n";
      Precedence. Try:

      echo " <td$s $s2</td><td>$s-".($s+$s2). " </td></tr>\r\n";
      There should be no difference, but there is.
      Of course there *is* quite a difference. You just failed to
      notice it.

      --
      Pavel Lepin

      Comment

      Working...