Edit report at https://bugs.php.net/bug.php?id=55451&edit=1
ID: 55451
Comment by: lauri dot kentta at gmail dot com
Reported by: datibbaw@php.net
Summary: substr_compare and case sensitivity
Status: Open
Type: Feature/Change Request
Package: Unknown/Other Function
Operating System: NA
PHP Version: Irrelevant
Block user comment: N
Private report: N
New Comment:
Notice that the original test doesn't work anymore, since the NULL is converted to zero length
and currently zero length is accepted and will always report equal (empty) substrings.
Better test:
--TEST--
Bug #55451 (substr_compare with NULL as default length)
--FILE--
<?php
var_dump(substr_compare("abcde", "ABCD", 0, NULL, false)); // not equal
var_dump(substr_compare("abcde", "ABCD", 0, NULL, true)); // not equal
var_dump(substr_compare("abcde", "ABCDE", 0, NULL, false)); // not equal
var_dump(substr_compare("abcde", "ABCDE", 0, NULL, true)); // equal
?>
--EXPECT--
int(1)
int(1)
int(1)
int(0)
Previous Comments:
------------------------------------------------------------------------
[2016-08-03 09:38:54] lauri dot kentta at gmail dot com
Notice that the original test doesn't work anymore, since the NULL is converted to zero length
and currently zero length is accepted and will always report equal (empty) substrings.
Better test:
--TEST--
Bug #55451 (substr_compare with NULL as default length)
--FILE--
<?php
var_dump(substr_compare("abcde", "ABCD", 0, NULL, false)); // not equal
var_dump(substr_compare("abcde", "ABCD", 0, NULL, true)); // not equal
var_dump(substr_compare("abcde", "ABCDE", 0, NULL, false)); // not equal
var_dump(substr_compare("abcde", "ABCDE", 0, NULL, true)); // equal
?>
--EXPECT--
int(1)
int(1)
int(1)
int(0)
------------------------------------------------------------------------
[2011-08-18 15:56:29] datibbaw@php.net
The following patch has been added/updated:
Patch Name: substr_compare_optlen
Revision: 1313682989
URL: https://bugs.php.net/patch-display.php?bug=55451&patch=substr_compare_optlen&revision=1313682989
------------------------------------------------------------------------
[2011-08-18 15:55:57] datibbaw@php.net
Description:
------------
The $length parameter of this function is optional in the documentation, but
currently it can't be skipped to only set the case sensitivity flag. Values like
null or false get converted into 0 which causes a warning and the function returns
false.
Using null to skip the $length parameter would be nice.
Test script:
---------------
<?php
// should output: 0
echo substr_compare("hello World", "world", 6, null, true), PHP_EOL;
?>
Expected result:
----------------
0
Actual result:
--------------
Warning: substr_compare(): The length must be greater than zero
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=55451&edit=1