On 23 August 2024 13:04:22 BST, Mike Schinkel <m...@newclarity.net> wrote:
>
>> It wouldn't be a top-level namespace that would cause a conflict, but a 
>> nested one: currently the above code resolves the function name as 
>> "AcmeComponents\SplineReticulator\Utilities\Text\Text\strlen" (note the 
>> "...\Text\Text\...").
>
>How often does that really occur in the wild?  

Oh, I think it would be much rarer than colliding with a global namespace. I 
was pointing out that your suggestion was *better* than you thought.


>And how can it occur without an explicit `use 
>AcmeComponents\SplineReticulator\Utilities\Text\Text` statement, which I 
>proposed would override the automatic `use`, anyway?

I'm not sure what you mean. Right now, that's the function name that would be 
looked up for your example code (other than a couple of unrelated typos in your 
example). So if, for some reason, someone was relying on that, their code would 
break with your "automatic use".


>The only one of those that has a strong analog to existing PHP code is to "use 
>the end of the current namespace" as people frequently do with explicit `use` 
>statements.

True. I just don't love the context-sensitive nature of it.


>Lastly, no comment on `\\`?

Ah, yes, I forgot to say: I'm not keen on that because in other contexts it 
means exactly the opposite: it refers to the absolute root in a context where a 
relative name would be assumed.

For example, \\domain\username and \\server\fileshare on Windows, or 
//example.com/foo in a URL

Rowan Tommins
[IMSoP]

Reply via email to