On Mon, 1 Jul 2024, Saki Takamachi wrote:

> Hi,
> 
> >> Just a suggestion: what about making the returned array an associative
> >> array ? Like so:
> >> ```
> >> array(
> >>      'quotient' => 61,
> >>      'remainder' => 1,
> >> );
> >> ```
> >> This would remove the need for devs to remember the order of the return
> >> values and would make the return value self-documenting.
> > 
> > An associative array would combine the worst of an array (no IDE 
> > autocompletion, no strong typing, increased memory usage) with the worst of 
> > an object (no easy way to extract the values into local variables with 
> > array destructuring).
> > 
> > The example in the RFC doesn't show it, but the following makes the 
> > proposed API really convenient to use:
> > 
> >    $slicesOfPizza = new BcMath\Number(8);
> >    $mouthsToFeed = new BcMath\Number(3);
> >    [$perMouth, $slicesLeft] = $slicesOfPizza->divmod($mouthsToFeed);
> > 
> > Note how the order of values matches the words in the method name. First 
> > the result of 'div', then the result of 'mod’.
> 
> 
> Thanks, I have added this example to the RFC (Please let me know if you have 
> any problems).

The example has:

        [$perMouth, $slicesLeft] = $slicesOfPizza->divmod($mouthsToFeed);
         
        // $perMouth->value is '2'
        // $slicesLeft->value is '2'

Shouldn't that be (without the ->value) ?

        [$perMouth, $slicesLeft] = $slicesOfPizza->divmod($mouthsToFeed);
         
        // $perMouth is '2'
        // $slicesLeft is '2'

cheers,
Derick

Reply via email to