ID:               41375
 Updated by:       [EMAIL PROTECTED]
 Reported By:      bugs dot php dot net at kreidenweis dot com
 Status:           Open
 Bug Type:         Documentation problem
 Operating System: Any
 PHP Version:      5.2.2
 New Comment:

Okay, documenting it at least makes code and documentation consistent,
but why the change in the first place? Why not avoid the break and leave
it consistent?


Previous Comments:
------------------------------------------------------------------------

[2007-09-07 09:40:38] [EMAIL PROTECTED]

Reclassified.


------------------------------------------------------------------------

[2007-09-07 06:48:16] [EMAIL PROTECTED]

"If start is negative, the returned string will start at the start'th
character from the end of string."

The function still accepts a negative start. What changed is if the
start is longer than the string length, the test (user friendly
version):

 if (from > strlen(str) || (from < 0 && -from > strlen(str)))

As I agree it may break some scripts, the new behavior should be
documented, as a bug fix.

Can we move this bug to the doc category?

------------------------------------------------------------------------

[2007-09-07 02:22:57] [EMAIL PROTECTED]

Seems to me as if this was introduced with 5.2.3, not 5.2.2 per the
original submitter. Also see
http://us.php.net/manual/en/function.substr.php#75999 - this isn't
something that only affects me.

------------------------------------------------------------------------

[2007-09-07 02:20:36] [EMAIL PROTECTED]

I'm sorry, but this is a definite BC break and has bitten me both in
Horde code and in my company's codebase. I've re-read the substr docs
several times and I don't see any indication that a negative $start can
cause substr to return false. Here's the description of the start
parameter in its entirety:

If start is non-negative, the returned string will start at the
start'th position in string, counting from zero. For instance, in the
string 'abcdef', the character at position 0 is 'a', the character at
position 2 is 'c', and so forth.

If start is negative, the returned string will start at the start'th
character from the end of string.

Example 2454. Using a negative start
<?php
$rest = substr("abcdef", -1);    // returns "f"
$rest = substr("abcdef", -2);    // returns "ef"
$rest = substr("abcdef", -3, 1); // returns "d"

... from http://us3.php.net/substr.

------------------------------------------------------------------------

[2007-05-12 15:47:23] [EMAIL PROTECTED]

Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php

.

------------------------------------------------------------------------

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

Reply via email to