On Mon, Feb 10, 2025, at 4:04 AM, Tim Düsterhus wrote:
> Hi
>
> Am 2025-02-07 05:57, schrieb Larry Garfield:
>> https://wiki.php.net/rfc/pipe-operator-v3
>
> After also having taken a look at the implementation and then the 
> updated “Precedence” section, I'd like to argue in favor of moving `|>` 
> to have a higher precedence than the comparison operators (i.e. between 
> string concatenation and `<`). This would mean that `|>` has higher 
> precedence than `??`, but looking at the following examples, that 
> appears to be the more useful default anyways.
>
> I'm rather interested in handling a `null` pipe result:
>
>      $user = $request->get('id')
>          |> $database->fetchUser(...)
>          ?? new GuestUser();
>
> Than handling a null callback (using the RFC example, because I can't 
> even think of a real-world use-case):
>
>      $res1 = 5
>          |> $null_func ?? defaultFunc(...);
>
> To give some more examples of what would be possible without parentheses 
> then:
>
>      $containsNotOnlyZero = $someString
>          |> fn ($str) => str_replace('0', '', $str)
>          |> strlen(...)
>          > 0;
>
> Which is not particularly pretty, but appears to be more useful than 
> either passing a boolean into a single-argument function or piping into 
> a boolean (which would error).
>
> Best regards
> Tim Düsterhus

I have updated the patch and RFC accordingly.  I think you're right, it does 
make a bit more sense this way.

--Larry Garfield

Reply via email to