Bug #77112 [Csd->Nab]: Substr returns "" on string_length + 1 instead of "false"

From: Date: Tue, 06 Nov 2018 16:53:56 +0000
Subject: Bug #77112 [Csd->Nab]: Substr returns "" on string_length + 1 instead of "false"
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-217846@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=77112&edit=1

 ID:                 77112
 Updated by:         requinix@php.net
 Reported by:        php at pawlowicz dot it
-Summary:            tested on PHP <= 7.2.4
+Summary:            Substr returns "" on string_length + 1 instead of
                     "false"
-Status:             Closed
+Status:             Not a bug
 Type:               Bug
-Package:            PHP Language Specification
+Package:            Strings related
 Operating System:   all
 PHP Version:        7.2.11
 Block user comment: N
 Private report:     N



Previous Comments:
------------------------------------------------------------------------
[2018-11-06 08:21:26] php at pawlowicz dot it

its not a bug, its a feature: http://php.net/manual/en/migration70.changed-functions.php#migration70.changed-functions.core

------------------------------------------------------------------------
[2018-11-06 07:29:41] php at pawlowicz dot it

php lower equal 7.2.4

------------------------------------------------------------------------
[2018-11-06 07:28:48] php at pawlowicz dot it

Description:
------------
Substr returns "" on string_length + 1 instead of "false"

Test script:
---------------
<?php

var_dump(substr("test", 3));  // "t" in PHP 5,  "t" in PHP 7.*
var_dump(substr("test1", 4));  // "1" in PHP 5,  "1" in PHP 7.*

// BUG START!!
var_dump(substr("test", 4));  // false in PHP 5,  "" in PHP 7.*
var_dump(substr("test1", 5));  // false in PHP 5,  "" in PHP 7.*
// BUG END

var_dump(substr("test", 5));  // false in PHP 5,  false in PHP 7.* 
var_dump(substr("test1", 6));  // false in PHP 5,  false in PHP 7.*


Expected result:
----------------
var_dump(substr("test", 4));  // false
var_dump(substr("test1", 5));  // false

Actual result:
--------------
var_dump(substr("test", 4));  // "" in PHP 7.*
var_dump(substr("test1", 5));  // "" in PHP 7.*


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



--
Edit this bug report at https://bugs.php.net/bug.php?id=77112&edit=1


Thread (1 message)

  • requinix@php.net
  • Unknown Message
    • requinix@php.net
« previous php.bugs (#217846) next »