Doc #62586 [Com]: version_compare, case sensitivity
| From: | dattaya108 at gmail dot com | Date: | Fri, 20 Jul 2012 06:17:14 +0000 |
| Subject: | Doc #62586 [Com]: version_compare, case sensitivity | ||
| References: | 1 | Groups: | php.doc.bugs |
| Request: | Send a blank email to doc-bugs+get-8599@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=62586&edit=1
ID: 62586
Comment by: dattaya108 at gmail dot com
Reported by: dattaya108 at gmail dot com
Summary: version_compare, case sensitivity
Status: Closed
Type: Documentation Problem
Package: Documentation problem
Operating System: Linux
PHP Version: 5.3.14
Assigned To: aharvey
Block user comment: N
Private report: N
New Comment:
Thank you aharvey!
I was going to propose to change it to something like this
```
Special version strings such as <literal>alpha</literal> and
<literal>beta</literal> should be lowercase. Otherwise they will be treated as
<literal>any string not found in this list</literal>.
```
but after a test it turned out that it's not working that way:
var_dump(version_compare('2.1.0-DEV', '2.1.0-dev', '<'));
var_dump(version_compare('2.1.0-ALPHA', '2.1.0-dev', '<'));
var_dump(version_compare('2.1.0-BETA', '2.1.0-dev', '<'));
var_dump(version_compare('2.1.0-RC', '2.1.0-dev', '<'));
bool(true)
bool(true)
bool(true)
bool(false)
Previous Comments:
------------------------------------------------------------------------
[2012-07-20 02:24:22] aharvey@php.net
This bug has been fixed in the documentation's XML sources. Since the
online and downloadable versions of the documentation need some time
to get updated, we would like to ask you to be a bit patient.
Thank you for the report, and for helping us make our documentation better.
------------------------------------------------------------------------
[2012-07-20 02:24:20] aharvey@php.net
Automatic comment from SVN on behalf of aharvey
Revision: http://svn.php.net/viewvc/?view=revision&revision=326719
Log: Fix doc bug #62586 (version_compare, case sensitivity) by adding a note about
case sensitivity.
------------------------------------------------------------------------
[2012-07-19 05:44:12] dattaya108 at gmail dot com
And this: "This parameter is case-sensitive, so values should
be lowercase". is probably about the parameter itself:
var_dump(version_compare('2.1.0-dev', '2.1.0-dev', 'lt'));
var_dump(version_compare('2.1.0-dev', '2.1.0-dev', 'LT'));
bool(false)
NULL
------------------------------------------------------------------------
[2012-07-19 05:33:04] dattaya108 at gmail dot com
Yes, definitely, because without third parameter result is the same:
var_dump(version_compare('2.1.0-DEV', '2.1.0-dev'));
var_dump(version_compare('2.1.0-dev', '2.1.0-dev'));
int(-1)
int(0)
------------------------------------------------------------------------
[2012-07-18 19:51:51] mail+php at requinix dot net
>Is there a page in the documentation that describes what's a "PHP-standardized"
version number?
The description block gives a fairly precise explanation for how version numbers
are compared: after a couple character replacements, numeric parts are compared
as numbers and non-numeric parts (eg, "alpha" and "rc") are compared according
to a hierarchy.
>hmm, you can strtolower before compare, I'd prefer this to be a doc problem..
The operator parameter says "This parameter is case-sensitive, so values should
be lowercase". Maybe move that somewhere more obvious, like the description or a
note?
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
https://bugs.php.net/bug.php?id=62586
--
Edit this bug report at https://bugs.php.net/bug.php?id=62586&edit=1