On Tue, May 17, 2016 at 6:15 AM, François Laupretre <franc...@php.net>
wrote:
>
>
>
>> The question of function aliases is not so serious because we'll need very
>>> few. Almost every functions have only one 'natural' argument to
>>> substitute
>>> as lhs. I'm not sure I understand what you mean with 'but only in certain
>>> situations'.
>>>
>>> If it were so natural, wouldn't the original version of these
>> functions have been made "right" in the first place?  I fear that the
>> only thing we'd gain by adding all these aliases is more functions,
>> but without the benefit of any improvement in the argument ordering
>> problem because now, instead of remembering which order the argument
>> is in, users have to remember which alias to call.
>>
>
> Right. That's why I propose we start without creating any function alias.
> We're not supposed to allow writing anything in a pipeline. For every
> functions, the substituted argument will always be the
> haystack|subject|source|input argument. That's easy to remember.
>

Which I don't think covers many use cases that the Pipe Operator would
currently solve. Doing this would lessen its usefulness IMO. Think about
common string nesting like:

$var = substr($var, 0, strpos($var, $othervar));

With current Pipe it would be:

$var = strpos($var, $othervar)
   |> substr($var, 0, $$);

but your suggestion requires this be kept nested as only haystack is
allowed? That totally weakens the proposal in my book.

@Sara: Can the place holder be used twice? If its numeric, can I make it
negative or perform other math? I don't see anything in the RFC allowing or
disallowing such things. Such as:

$var = strlen($str)
    |> substr($var, -$$, $$/2)

Reply via email to