> On 11 Aug 2022, at 17:25, Christian Schneider <cschn...@cschneid.com> wrote:
> 
> Am 11.08.2022 um 11:03 schrieb Alex Wells <autau...@gmail.com>:
>> That’s just a concept. I’d love to bring a lot more examples in an RFC if 
>> there’s more positive than negative feedback. Again, I’m more looking for 
>> feedback than trying to convince someone, but I’ll showcase a couple real 
>> comparisons for some context:
>> 
>> Compere these (copied from real world project/public composer packages):
>> ```php
>> $className = Str::studly(implode('_', array_slice(explode('_', 
>> $file->getName()), 4)));
>> // vs
>> $className = 
>> $file->getName()->explode(‘_’)->slice(4)->implode(‘_’)->studly();
> 
> This reminds me of the proposed (but declined) pipe operator
>       https://wiki.php.net/rfc/pipe-operator-v2
> but I'd still prefer to have it as a generic operator instead of using a 
> pseudo-OO approach for this.
> I say pseudo-OO because not everything in PHP is an object plus using the -> 
> syntax IMHO muddies the water.
> 
> Regards,
> - Chris
> 
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: https://www.php.net/unsub.php
> 

The pipe operator RFC has actually been mentioned before; the short takeway is: 
pipe operator works and has a benefit of using existing functions. The downside 
is that those are still functions, not methods, meaning you’ll still be left 
with `[your_type]_` prefixes for all function names, unlike extension methods, 
where you can have multiple methods with the same name (for different types).

Regarding the `->` syntax, I agree it looks confusing at first. This is the way 
it looks in the aforementioned languages (all of which use dot as member access 
operator):
```
“42”.toInt() // kotlin
’42’.parseInt() // dart
“42”.ParseInt() // c#
```
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php

Reply via email to