> Le 25 juil. 2024 à 05:22, Nick Lockheart <li...@ageofdream.com> a écrit : > > 1. Could we have a global setting (maybe php.ini) that makes all built- > in functions (not built in classes) directly accessible in any > namespace? That is: > > // php.ini > AlwaysUseGlobalFunctions = yes > > Then: > // myclass.php > namespace foo; > class Bar{ > > function MyMethod($a,$b){ > if(array_key_exists($a,$b)){ // no \ before array_key_exists > // do something > } > } > } > > And with that option set, PHP will know that array_key_exists *is* > \array_key_exists, even without the slash, and without checking the foo > namespace for an array_key_exists function first? > > My understanding is that some built-in functions have their own opcode, > that doesn't get triggered when those built-in functions are called in > a namespace, unless the built-in is called with a `\`. > > Having all *functions* default to global would make namespaces a lot > more user friendly to work with, since we wouldn't have to put > backslashes in front of everything. > >
Hi, For the case of functions (and constants) in the global namespace, there was an RFC on the subject about 4 years ago, which has been declined; see: https://wiki.php.net/rfc/use_global_elements and the discussion threads referenced at the bottom of that page. —Claude