> > 
> > 
> > A third option, which I haven't seen come up on the list yet, is
> > that
> > unqualified functions that are PHP built-ins are treated as global,
> > and
> > using a function having the same name as a built-in, in a namespace
> > scope, requires a fully qualified name to override the built-in.
> > 
> > It seems that if someone is writing `array_key_exists()` or similar
> > they probably mean the built-in function, and in the rare cases
> > where
> > they do mean `\foo\array_key_exists()`, they can write it
> > explicitly.
> > 
> > Functions that are *not* on the built-in function list could
> > default to
> > the local namespace.
> 
> I was actually thinking of doing something like this for function
> autoloading, where extensions could register global functions that
> bypass the autoloader and go straight to global if it isn't defined
> in the local namespace already. I decided not to even bring it up
> because it felt controversial (it would effectively be global first,
> except for user functions). Though, it might be a nice compromise?
> 
> — Rob


I think we are all trying to achieve the same thing here.

There's different ways to go about it, each with pros and cons, but I
think we need to think through how all the parts fit together, because
I think if we can reach consensus, then several RFCs become compatible
with each other.

A change to how function namespace lookup works would affect function
auto-loading, and it may even make it simpler, depending on the other
options that we end up going with.

Reply via email to