Re: PHP > v7.2.18 preg_match returns 2
| From: | Christoph M. Becker | Date: | Tue, 19 Nov 2019 14:16:48 +0000 |
| Subject: | Re: PHP > v7.2.18 preg_match returns 2 | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-326944@lists.php.net to get a copy of this message | ||
On 19.11.2019 at 14:25, Falko Matthies wrote:
> just found out, that function preg_match() returns not only 1 or boolean values. I did not find
> any documentation about
> some changes of this method and also the documentation is still the same.. So either there are
> undocumented changes or it
> is a small bug.
>
> Documentation: Ö$
> "É×ã™=m¥C¹chttps://www.php.net/manual/en/function.preg-match.php#refsect1-function.preg-match-returnvalues
>
> Tested locally with PHP 7.3.11-1+0~20191026.48+debian10~1.gbpf71ca0
>
> <?php
> var_dump(preg_match('/^|\d{1,2}$/', "7")); // expected: int(1), got:
> int(2)
>
>
> Also a small test at http://sandbox.onlinephpfunctions.com/
> showed a result change between PHP v7.2.18 and v7.3.5. I
> have checked the bugs and the changelog but could not find any notes.
This also happens on <https://3v4l.org/cKarY>, but only
as of 7.3.0 (not
7.2). On a quick glance, it looks like this line[1] should rather be
RETVAL_LONG(global ? matched : MIN(matched, 1));
Anyhow, I suggest to file a bug report on <https://bugs.php.net/>
(assuming that this issue has not been reported already).
[1]
<https://github.com/php/php-src/blob/php-7.3.11/ext/pcre/php_pcre.c#L1413>
--
Christoph M. Becker