ID: 19883 Comment by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] Status: Bogus Bug Type: Strings related Operating System: Windows NT PHP Version: 4.2.0 New Comment:
Yes, of course, I was only thinking that the advantage of PHP over C was that we can concatenate easily strings with expressions and functions results when setting variable, calling functions ... this syntax allow to do : something('a='.$a.' and f(a)*2 = '.f($a)*2.' ...'); instead of : $str = 'a='; $str .= $a; $str .= ' and f(a)*2 = '; $str .= f($a)*2; $str .= ' ...'; something($str); or : $str = sprintf('a=%d and f(a)*2 = %d ...', $a, f($a)*2); something($str); I really think that if you allow this kind of concatenation to avoid complex string composition, then the 'float' problem is a bug, standard C does not allow dynamic string concatenation but in C++ you can overload the '+' operator and there is no confusion with the '.' I know there is always a way to overcome the problem in syntax, my report is only about something that appear to me to be an error. Julien. Previous Comments: ------------------------------------------------------------------------ [2002-10-13 11:38:29] [EMAIL PROTECTED] In that case, simply use $i = 153; echo $i*2 echo 'km'; or printf()... ------------------------------------------------------------------------ [2002-10-13 11:16:05] [EMAIL PROTECTED] and when you want to concatenate with dynamic calculated infos ? $i = 153; echo $i*2.'km'; ------------------------------------------------------------------------ [2002-10-13 09:47:57] [EMAIL PROTECTED] Why don't you just use '2km' instead of 2.'km' ? Derick ------------------------------------------------------------------------ [2002-10-13 09:46:06] [EMAIL PROTECTED] and also : $e = 0x7C.'km'; // is ok '124km' $e = 124.'km'; // parse error why do you process decimal integers in different way than hexadecimal integers ? If it is only to detect decimal float then you should take care to the fact that '.' is not only a decimal separator but also a concatenation operator !!! ------------------------------------------------------------------------ [2002-10-13 09:41:43] [EMAIL PROTECTED] maybe you do not consider it as a bug but it is quite annoying when contatenating arguments, I personnaly think that this is a lack of the parser/compiler to do not detect that the '.' is not a part of the '2' but it is an operator : putting a '.' after the 2 doesn't change it's display. $e = 2.3.'km'; // the dot after 2 followed by a digit // indicate a float '2.3km' $e = 2..'km'; // is ok the the dot after 2 is useless '2km' $e = 2.'km'; // produce a parse error $e = 2 .'km'; // is ok '2km' ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/19883 -- Edit this bug report at http://bugs.php.net/?id=19883&edit=1