Edit report at http://bugs.php.net/bug.php?id=53238&edit=1

 ID:                 53238
 Comment by:         giovanni at giacobbi dot net
 Reported by:        giovanni at giacobbi dot net
 Summary:            Make third parameter of preg_match_all optional
 Status:             Closed
 Type:               Feature/Change Request
 Package:            PCRE related
 Operating System:   any
 PHP Version:        5.3.3
 Assigned To:        aharvey
 Block user comment: N

 New Comment:

Agreed on everything! The only thing, if you decide to leave it out for
5.3.4 the 

leave it out forever! In general, if you do this with all features,
people will 

migrate to 5.4 more easily because the stuff they want is
there...otherwise will 

happen again the same between 5.2 and 5.3.



Thank you! bye


Previous Comments:
------------------------------------------------------------------------
[2010-11-05 19:18:15] [email protected]

Good catch on the bracket. Fixed, and thanks. :)



It probably wouldn't be hard to backport this to the 5.3 branch, but my
inclination is to leave this only in trunk for now -- we're likely to
have the first RC for 5.3.4 in less than two weeks, and I don't see this
being important enough to shoehorn it into 5.3 to make that release in
particular. We'll get some more testing on this (hopefully) in a 5.4
alpha fairly soon, too.



I'm happy enough to have another look at this for 5.3 after 5.3.4 is
done, though. Feel free to prod me via e-mail or the bug tracker if I
forget. :)

------------------------------------------------------------------------
[2010-11-05 15:00:59] giovanni at giacobbi dot net

Hi aharvey, thank you for the extremely quick reaction. Two things:



I think you misplaced the [, it's supposed to go in front of the comma:



-/* {{{ proto int preg_match_all(string pattern, string subject, array
&subpatterns [, int flags [, int offset]])

+/* {{{ proto int preg_match_all(string pattern, string subject, [array
&subpatterns [, int flags [, int offset]]])



second thing is.. any chance to have this backported for 5.3.4? There is
no BC break since it's a parameter that becomes optional. I understand
if you want to keep all API changes for minor version, it's what I would
do as well..only problem with PHP is that it has a too slow release
cycle.



Thank you anyway, I really appreciate your support.

------------------------------------------------------------------------
[2010-11-05 05:37:57] [email protected]

This bug has been fixed in SVN.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
 
Thank you for the report, and for helping us make PHP better.

This has been implemented on trunk, and should be in 5.4. (Assuming
that's what it's called.)

------------------------------------------------------------------------
[2010-11-05 05:37:29] [email protected]

Automatic comment from SVN on behalf of aharvey
Revision: http://svn.php.net/viewvc/?view=revision&revision=305097
Log: Implemented FR #53238 (Make third parameter of preg_match_all
optional).

------------------------------------------------------------------------
[2010-11-03 19:32:23] giovanni at giacobbi dot net

Description:
------------
I had to count the time a regular expression is in a string, and the
correct way to do this is with the return value of preg_match_all()
because preg_match() will always return either 0 or 1.

The problem is that preg_match_all() enforces the third parameter. My
request is to align the prototype of preg_match_all() to the one of
preg_match(), i.e. making the third parameter optional.



Test script:
---------------
$cnt = preg_match_all('/<br\s*\/?>/i', "this<br/>my<br>text");

var_dump($cnt);



Expected result:
----------------
int(2)



Actual result:
--------------
Warning: preg_match_all() expects at least 3 parameters, 2 given in - on
line 2

bool(false)




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



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

Reply via email to