2007/12/20, Martin Alterisio <[EMAIL PROTECTED]>: > > 2007/12/20, Greg Beaver <[EMAIL PROTECTED]>: > > > > Martin Alterisio wrote: > > > Consider the following code: > > > > > > test.php: > > > <?php > > > include 'foo.php'; > > > use test::foo; > > > foo(); > > > ?> > > > > > > foo.php: > > > <?php > > > namespace test; > > > function foo() { } > > > ?> > > > > > > Is it expected behavior that the scripts ends in: > > > Fatal error: Call to undefined function foo() > > > ? > > > > Hi Martin, > > > > No. This is a bug, I was alluding to it in an earlier email, but you > > know how time eats up one's life, so I haven't reported it and would > > grateful if someone would (or Dmitry/Stas would just know why it is > > broken and fix it :) > > > > Greg > > > > Thank you. Sorry I didn't read your mail about this bug. I'll look into it > a bit more and post a bug report. > > Have you seen my post scriptum in the first mail about benchmarks? Any > idea of what I could use to test the performance of the unsolved name > resolutions that are pushed into the executer? I expect there won't be any > considerable performance penalty but just want to be completely sure.
Please, review the following patch against 5.3: http://martinalterisio.com.ar/php5.3/use.function.patch It should fix the use statement behavior so that aliases for namespaced functions into global scope are recognized. The example code in the first mail shouldn't fail and call test::foo(). I've tried some variations and run the tests without finding any problem, but please check again if you can. If nothing comes out, I'll post it in a bug report asap. Best Regards, Martin Alterisio