> Le 4 févr. 2025 à 10:34, Dmitry Derepko <[email protected]> a écrit :
>
> Hi, Claude!
>
>> On Feb 4, 2025, at 11:44 AM, Claude Pache <[email protected]> wrote:
>>
>> Hi,
>>
>> One issue to resolve is how to interpret:
>>
>> ```php
>> $x = match {
>> preg_match('/a/', 'a') => "will it be matched ..."
>> , default => "... or not?"
>> };
>> ```
>>
>> —Claude
>
> I wouldn’t discuss it there because the proposal is only about short syntax.
> So making “match” work in different way is not a goal for the change.
>
> It must work as full form “match(true)”: strict match, which is "===“.
> If you’re going to use non-strict comparison check “switch” operator:
> https://3v4l.org/tHkJu
> Anyway, as for me it should be another thread. Thanks!
Hi Dmitry,
The issue absolutely belong to a thread discussing making “match (true) {}”
equivalent to “match {}”. It doesn’t matter what is logical or simple, you have
also think about what is intuitive or, conversely, confusing.
With `match (true) { $foo => ... }`, it is clear you are comparing $foo with
the literal value `true`.
With `match { $foo => ... }`, it is not intuitive at all that you are *not*
just checking the condition $foo, but rather you are comparing $foo with some
default literal value. The difference matters.
Therefore, I think it is a bad idea to make `match (true) { }` equivalent to
`match { }`.
—Claude