> Le 4 févr. 2025 à 08:43, Dmitry Derepko <[email protected]> a écrit :
>
> Hi, Larry!
>
>> On Feb 3, 2025, at 10:01 AM, Larry Garfield <[email protected]> wrote:
>>
>> On Sun, Feb 2, 2025, at 7:40 AM, Ilija Tovilo wrote:
>>> Hi Dmitrii
>>>
>>> On Sun, Feb 2, 2025 at 1:05 PM Dmitry Derepko <[email protected]> wrote:
>>>
>>> https://wiki.php.net/rfc/short-match
>>> https://externals.io/message/112496
>>
>> Hi, author of that RFC here. Although there seemed to be interest for it in
>> the initial match() discussion, the stand-alone follow up was met with a
>> giant "meh", which is why I didn't pursue it further. I would still be in
>> favor of it, though, if it could get through internals. I'm happy to have
>> someone pick it up and run with it, or collaborate on rebooting that RFC.
>> (I'm pretty sure the patch for it actually worked, at least it did at the
>> time.)
>>
>> --Larry Garfield
>
>
> It looks funny that I’m following in your steps with the RFC’s didn’t go
> through 😃
>
> By the way, I’ve implemented empty match subject in a bit different way:
> https://github.com/php/php-src/pull/17692
>
> About the RFC. What’s the way to re-activate it?
> Will you re-activate it?
> Do I need to create a new one referencing to this one?
> Can you share rights to edit the RFC and we can push it further together?
Hi,
One issue to resolve is how to interpret:
```php
$x = match {
preg_match('/a/', 'a') => "will it be matched ..."
, default => "... or not?"
};
```
knowing that preg_match(...) never returns `true`, but one of `0`, `1` or
`false`. More generally, how to deal with truthy-but-not-true values.
I see three options:
(a) check for strict equality with `true` (i.e. make `match {}` equivalent to
match(true) {}`). The `preg_match(...)` branch will never be taken;
(b) check for truthy values. The `preg_match(...)` branch will be taken if the
condition evaluates to 1;
(c) mandate a boolean: The `preg_match(...)` branch will throw a runtime error
if the condition evaluates to 0 or 1;
Personnally, I am against option (a) as it is confusing and would be a source
of bugs.
—Claude