On Tue, May 16, 2017 at 5:03 PM, Christoph M. Becker <cmbecke...@gmx.de> wrote: >>> I suggest not to set unmatched subpatterns at all, >> >> Can you give an example of expected output ? >> (I think stable position for matched pattern is important) >> >> php -r 'var_dump(preg_match("/(a)?([a-z]*)(\d*)/", "123", $matches), >> $matches);' > > See the pcretest results danielklein posted in his last comment on > <https://bugs.php.net/61780>. Basically, instead of assigning NULL as > values, the array indexes could be skipped, so that array_key_exists() > can be used to determine whether a certain subpattern matched or not. > Well, but isset() would do this already with NULLs.
$x = ['foo'=>NULL]; // isset($x['foo'] === false) I know people are generally getting trained to use array_key_exists() to avoid this "set but null" issue, but this is a case where that behavior of isset() is actually quite useful. -Sara -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php