Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

  •   Subject
  • Author
  • Posted on
I am traing to output the following HTML string from PHP:
"<td><input name='".$i-2."' size='2' type='text'
But it somehow mistreats  $i-2. PHP does not throw any errors but the
browser renders the table incorrectly.
I got round this by introducing another variable
j=i-2 and using it in place of i-2
It works. However I am interested to understand why is does not work with
i-1. Any comments?

Re: "


Quoted text here. Click to load it

I get a parse error, but even without that the above would not do what
you want. In fact what you are trying do to is to print a difference of
these three strings:

"<td><input name='".$i
2."' size='2' type='text' onBlur='myfunction(".$i

Quoted text here. Click to load it

There are some other ways to solve that issue:

1) Use parentheses around the $i-2, e.g.

print "<td><input name='".($i-2)."' size='2' ...";

2) Use printf() and a format string with placeholders, which are then
replaced with $i-2. See the manual on sprintf() for details.


Re: "

Thanks, Micha
It never occured to me that concatination could have hight priority than
arithmetic operations.

Site Timeline