On Fri, May 3, 2024, at 1:45 AM, Gina P. Banyard wrote:
> On Thursday, 2 May 2024 at 21:33, Derick Rethans <der...@php.net> wrote:
> 
> > On 2 May 2024 13:48:36 BST, Ollie Read php@ollie.codes wrote:
> > 
> > > These methods accept an integer to retrieve a parameter by its position, 
> > > or a string to retrieve by its name. So far, I have built this so that if 
> > > you required the first parameter, it's parameter 0. I treat it this way 
> > > because the only other place where we deal with parameter indexes, is 
> > > ReflectionFunctionAbstract::getParameters() which returns the parameters 
> > > zero-indexed.
> > > 
> > > The question that is holding this PR back is should these methods be 1 
> > > indexed, so that the provided position is consistent with the error 
> > > messages, or how a person would typically count, or should they be 0 
> > > indexed to remain consistent with the existing API.
> > 
> > 
> > 0-indexed, as that's what PHP does everywhere else.
> > 
> > cheers
> > Derick
> 
> Well not really, if you have an error (TypeError or ValueError) which 
> indicate what parameter is the problem, it will be 1-indexed.
> 
> Which, for me, makes it more logical to have it 1-indexed.
> If the ReflectionFunctionAbstract::getParameters() API did not exist, this is 
> what I would have pushed for.
> 
> Moreover, PHP already has a 1-indexed and 0-indexed discrepancy with the 
> ob_get_level() and ob_get_status() functions.
> 
> In the end, I don't really care what we choose, but this just needed 
> clarification from internals on how to proceed.
> 
> Best regards,
> 
> Gina P. Banyard
> 

It looks like the consensus seems to be 0-indexed, but I'm happy to allow it a 
bit more time to get a few more opinions if you'd prefer.

I do totally understand what you're saying, though. I think people are 
typically already capable of differentiation. We know that the first entry in a 
list array, so entry 1, is index 0. Not to mention the way getPosition() and 
getParameters() works.

---
Best Regards,
*Ollie Read*

Reply via email to