#20695 [NoF->Opn]: substr does not always return a string
| From: | RNova at gmx dot net | Date: | Mon, 09 Dec 2002 11:18:25 +0000 |
| Subject: | #20695 [NoF->Opn]: substr does not always return a string | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-27153@lists.php.net to get a copy of this message | ||
ID: 20695
User updated by: RNova@gmx.net
Reported By: RNova@gmx.net
-Status: No Feedback
+Status: Open
Bug Type: Feature/Change Request
Operating System: Windows 98
PHP Version: 4.2.3
New Comment:
Hi Jan,
thanks for you reply! I have tried the snapshot
(for Windows) that you pointed me to. The program
works as you say - which IMHO is a bug.
The output is - as you mention:
1<BR>
substr("A",0,1):1<BR>
substr("A",0,0):1<BR>
substr("A",1,1):<BR>
substr("A",1,0):<BR>
This means that substr("A",1,1) and substr("A",1,0) are both
not strings. Therefore substr does _not_ always return a string.
If this is considered correct, then it should be mentioned in
the documentation.
Personally, I would prefer this to be considered
incorrect: I would prefer substr($s,$n,$m) to always return a string,
at least if $s is a string and $n and $m are integers.
Please either improve the documentation or make substr($s,$n,$m)
always return a string (at least if $s is a string and $n and $m are
integers).
Thanks for putting this PHP together. It is a great means to produce
results quickly!
Cheers,
Raimund
Previous Comments:
------------------------------------------------------------------------
[2002-12-08 10:20:23] sniper@php.net
No feedback was provided. The bug is being suspended because
we assume that you are no longer experiencing the problem.
If this is not the case and you are able to provide the
information that was requested earlier, please do so and
change the status of the bug back to "Open". Thank you.
------------------------------------------------------------------------
[2002-11-28 04:49:32] jan@php.net
Please try using this CVS snapshot:
http://snaps.php.net/php4-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php4-win32-latest.zip
jan@dahlia ~> php bug_20695.php
1<BR>
substr("A",0,1):1<BR>
substr("A",0,0):1<BR>
substr("A",1,1):<BR>
substr("A",1,0):<BR>
jan@dahlia ~> php -v
PHP 4.4.0-dev (cli)
works fine here
------------------------------------------------------------------------
[2002-11-28 04:45:55] RNova@gmx.net
substr($s,$n,$m) is supposed to always return a string (at least if $s
is a string and $n and $m are integers).
However:
is_string(substr($s,strlen($s),$m))
returns false, so substr did not return a string.
Example:
echo is_string("")."<BR>\n";
echo
"substr(\"A\",0,1):".is_string(substr("A",0,1))."<BR>\n";
echo
"substr(\"A\",0,0):".is_string(substr("A",0,0))."<BR>\n";
echo
"substr(\"A\",1,1):".is_string(substr("A",1,1))."<BR>\n";
echo
"substr(\"A\",1,0):".is_string(substr("A",1,0))."<BR>\n";
------------------------------------------------------------------------
[2002-11-28 04:40:53] RNova@gmx.net
substr($s,$n,$m) is supposed to always return a string (at least if $s
is a string and $n and $m are integers).
However:
is_string(substr($s,strlen($s),$m))
returns false, so substr did not return a string.
Example:
$s="<AB attr = \n\"value\" >";
echo is_string("")."<BR>\n";
echo
"substr(\"A\",0,1):".is_string(substr("A",0,1))."<BR>\n";
echo
"substr(\"A\",0,0):".is_string(substr("A",0,0))."<BR>\n";
echo
"substr(\"A\",1,1):".is_string(substr("A",1,1))."<BR>\n";
echo
"substr(\"A\",1,0):".is_string(substr("A",1,0))."<BR>\n";
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=20695&edit=1