My previous message can be seen at https://news-web.php.net/php.internals/107887
(marc.info seems to show it as base 64 encoded text.)
It links to a PR https://github.com/php/php-src/pull/4951 implementing this

>A more cosmetic consideration is that the more generic the syntax looks, 
>the more people will want it to work for other use cases. I can imagine 
>"use function * works but use Foo\* doesn't" ending up on websites like 
>PHPSadness. A more specific statement, like a declare, or "use global 
>functions", is more obviously a one-off.

Good point. My original thinking was that it'd allow `use function Foo\*;` to 
be used in the future, but:

- With the way namespaces work, using more than one "wildcard" would result in 
unintuitive behavior.
  (based on what files were loaded at call time, and what the order of the 
`use` was.

  Also, instead of checking 2 namespaces, php would have to check an arbitrary 
list of namespaces.
- People new to the language would assume `count` would keep working 
  despite adding `use function Foo\*;` (e.g. seeing that 
require/print/isset/empty/eval resemble functions,
  and would continue to work)

Also, there's the large difference between PHP and Python/Java.
The functions in the module are known at the time of import for those, but not 
for "use" in PHP.

So rethinking it, something non-generic like "use global functions;" would be 
my preference.

Initial plan for a voting structure:
1. Whether a way to opt into exclusively checking global functions and 
constants should exist
2. Whether this should be part of 
declare(lookup_functions_in_current_namespace=1) or a "use" statement, if it 
does exist
3. The preferred "use" syntax, if there is not clear preference ("use global 
functions;" or "use function *;" or otherwise)

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to