This is an old revision of the document!
PHP RFC: Add str begin and end functions
- Version: 0.2
- Date: 2016-08-01 (use today's date here)
- Author: Will Hudgins, will@wkhudgins.info
- Status: Under Discussion
- First Published at: https://wiki.php.net/rfc/add_str_begin_and_end_functions
Introduction
PHP does not contain functions to test if a string begins or ends with a certain substring. This is currently possible using several other functions, but adding pre-built functions to do this will improve the readability and clarity of PHP code using the function. This feature has been requested multiple times and would be of use to many PHP developers with varying levels of experience.
Proposal
Add str_begin(), str_ibegin(), str_end(), and str_iend() functions
boolean str_begin[(string $search_value, string $str)] boolean str_ibegin[(string $search_value, string $str)] boolean str_end[(string $search_value, string $str)] boolean str_iend[(string $search_value, string $str)]
str_begin() checks if $str begins with $search_value. It accomplishes this by comparing each character in $search_value with the corresponding character in $str. If any of the characters do not match, it will return false. str_end() does the same thing except in reverse: it starts at the end of both $str and $search_value and compares each character in $search_value to the corresponding character in $str.
str_ibegin() and str_iend() do the same thing, except they are case insensitive.
Examples below:
$str = "beginningMiddleEnd"; if (str_begin("beg", $str)) echo "This condition would be true"; if (str_begins("Beg", $str)) echo "This condition would not be true"; if (str_ibegin("beg", $str)) echo "This condition would be true"; if (str_ibegin("Beg", $str)) echo "This condition would also be true"; if (str_end("End", $str)) echo "This condition would be true"; if (str_end("end", $str)) echo "This condition would not be true"; if (str_iend("End", $str)) echo "This condition would be true"; if (str_iend("end", $str)) echo "This condition would also be true";
Backward Incompatible Changes
None.
Proposed PHP Version(s)
Next PHP 7.x release.
RFC Impact
To SAPIs
Will add the aforementioned functions to all PHP environments.
To Existing Extensions
No.
To Opcache
No effect.
New Constants
No new constants.
php.ini Defaults
No changed php.ini settings.
Open Issues
This functionality was requested in both of these bug reports: https://bugs.php.net/bug.php?id=67035 and https://bugs.php.net/bug.php?id=50434.
Unaffected PHP Functionality
The only part of PHP that will be effected by this is the string library. This means that strings.c, basic_functions.c, and php_strings.h have all been modified to add the two new functions.
Future Scope
Once this feature is approved and added, it will not need any future improvements.
Proposed Voting Choices
This project requires a 2/3 majority to be approved.
Patches and Tests
Implementation
After the project is implemented, this section should contain
- the version(s) it was merged to
- a link to the git commit(s)
- a link to the PHP manual entry for the feature
References
Links to external references, discussions or RFCs
Related feature request: bug #50434.
Rejected Features
Keep this updated with features that were discussed on the mail lists.