ID: 25533 User updated by: spagmoid at yahoo dot com Reported By: spagmoid at yahoo dot com Status: Bogus Bug Type: Feature/Change Request Operating System: * PHP Version: * New Comment:
That is the very problem - it's quite obvious that noone there cares about it. No pride, like I said. But it was obviously not illogical to the person who made it work with '&'. Why isn't he here? That's what this project desperately needs - code ownership. When you divide programmers and bugfixers, you end up with a bunch of people who really DO not care. Previous Comments: ------------------------------------------------------------------------ [2003-09-16 14:25:27] [EMAIL PROTECTED] It is a thing that is in our view a) illogical and b) we don't care about. Not to your question. If we were to produce an error message we could instead implement any behaviour with the same amount of work - but to repeat - we don't care about. Thus it is undefined. And since it is undefined we will not provide examples for what it does because that would make it a documented feature we would have to take care about - and just to repeat - we don't care about. ------------------------------------------------------------------------ [2003-09-16 14:10:20] brad at info-link dot net In PHP: "10 Small Pigs" | "10.2 Little Piggies" = "10.smmm|t|mgsiggies" Seems to follow the Perl way of doing things... Each char in the first string is bitwise or'd with the corresponding char in the second string. I didn't test bitwise-&, ^, etc, but I would expect them to act similarly. Why not just add examples to the manual instead of saying it's undefined? Why allow an operation that you can't depend on - just throw a compiler error. ------------------------------------------------------------------------ [2003-09-16 13:47:37] [EMAIL PROTECTED] And what, in your opinion, should be the result of "10 Small Pigs" | "10.2 Little Piggies" ? The point is that logical (bitwise) operations are inherently not loosely typed. That's why the logical operators are (and will remain) undefined on strings. Use a cast at your own risk. ------------------------------------------------------------------------ [2003-09-16 13:39:18] spagmoid at yahoo dot com Let's see a few other things straight from the manual since you're all such EXPERTS on it: $foo = "0"; // $foo is string (ASCII 48) $foo += 2; // $foo is now an integer (2) $foo = 1 + "10.5"; // $foo is float (11.5) $foo = 1 + "-1.3e3"; // $foo is float (-1299) $foo = 1 + "bob-1.3e3"; // $foo is integer (1) $foo = 1 + "bob3"; // $foo is integer (1) $foo = 1 + "10 Small Pigs"; // $foo is integer (11) $foo = 4 + "10.2 Little Piggies"; // $foo is float (14.2) $foo = "10.0 pigs " + 1; // $foo is float (11) $foo = "10.0 pigs " + 1.0; // $foo is float (11) Does that look "UNDEFINED" to you??? Huh? Take that feature out and watch how many current PHP apps fail. You people have no sense of QUALITY whatsoever. NO PRIDE IN YOUR WORK. NO PRIDE IN PHP. ------------------------------------------------------------------------ [2003-09-16 13:33:11] spagmoid at yahoo dot com "The result of using other operators on strings is undefined." RTFM?? That line isn't in the manual you moron! You just made it up! Add it to the manual then, instead of improving your product. What a bunch of jackasses. THIS is in the manual: String conversion to numbers When a string is evaluated as a numeric value, the resulting value and type are determined as follows. ------------------------------------------------------------------------ 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/25533 -- Edit this bug report at http://bugs.php.net/?id=25533&edit=1