mirror of
https://github.com/php/php-src.git
synced 2024-09-22 10:27:25 +00:00
13b791c79c
Make the behavior of substr(), mb_substr(), iconv_substr() and grapheme_substr() consistent when it comes to the handling of out of bounds offsets. substr() will now always clamp out of bounds offsets to the string boundary. Cases that previously returned false will now return an empty string. This means that substr() itself *always* returns a string now (like mb_substr() already did before.) Closes GH-6182.
25 lines
595 B
PHP
25 lines
595 B
PHP
--TEST--
|
|
Bug #62759: Buggy grapheme_substr() on edge case
|
|
--SKIPIF--
|
|
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
|
|
--FILE--
|
|
<?php
|
|
var_dump(substr('deja', 1, -4));
|
|
var_dump(substr('deja', -1, 0));
|
|
var_dump(grapheme_substr('deja', 1, -4));
|
|
var_dump(intl_get_error_message());
|
|
var_dump(grapheme_substr('deja', -1, 0));
|
|
var_dump(grapheme_substr('déjà', 1, -4));
|
|
var_dump(intl_get_error_message());
|
|
var_dump(grapheme_substr('déjà', -1, 0));
|
|
?>
|
|
--EXPECT--
|
|
string(0) ""
|
|
string(0) ""
|
|
string(0) ""
|
|
string(12) "U_ZERO_ERROR"
|
|
string(0) ""
|
|
string(0) ""
|
|
string(12) "U_ZERO_ERROR"
|
|
string(0) ""
|