ID: 41375 Updated by: [EMAIL PROTECTED] Reported By: bugs dot php dot net at kreidenweis dot com Status: Bogus Bug Type: Documentation problem Operating System: Any PHP Version: 5.2.2 New Comment:
Ah. I do see that now, but it's in the docs for when $length is given and is positive. I guess the default for $length is presumed to be positive? This should definitely be documented under the $start parameter, not $length. And so I think it's a stretch to say this has been documented. If this was never *supposed* to work then I can see it's a documentation problem and will let it go. Previous Comments: ------------------------------------------------------------------------ [2007-09-07 17:46:01] [EMAIL PROTECTED] As far as I can tell, this has been documented since at least 2002. The fact that it worked up until 5.2.1 doesn't mean that you should have used it. >From the docs: """If string is less than or equal to start characters long, FALSE will be returned.""" http://cvs.php.net/viewvc.cgi/phpdoc/en/reference/strings/functions/substr.xml?revision=1.1&view=markup S ------------------------------------------------------------------------ [2007-09-07 17:25:21] [EMAIL PROTECTED] I should have specified that sometimes you only want the last X characters of a string. That's what this is about. ------------------------------------------------------------------------ [2007-09-07 16:10:25] [EMAIL PROTECTED] >if (strlen($string) > 16)) > $shorter = substr($string, -16); >else > $shorter = $string; $shorter = substr($string, 0, 16); Please don't tell me you didn't know that. ------------------------------------------------------------------------ [2007-09-07 15:50:42] [EMAIL PROTECTED] Alright, here's the use case: I have a string. I want at most 16 characters of it. For all PHP versions before 5.2.[2 or 3], I could do this: $shorter = substr($string, -16); Now I have to do this: if (strlen($string) > 16)) $shorter = substr($string, -16); else $shorter = $string; My question is, especially since I'm asking that the historical behavior of PHP be maintained, how does this change improve the language? What is the point of it? ------------------------------------------------------------------------ [2007-09-07 15:36:40] [EMAIL PROTECTED] I don't think it's good idea to change it in every release back and forth. Also the current behavior makes much more sense to me. Negative string length is a nonsense, so false is the correct result. ------------------------------------------------------------------------ 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/41375 -- Edit this bug report at http://bugs.php.net/?id=41375&edit=1