Looking for some feedback on what the expected behavior should be for class
and/or constant ambiguity within namespaces. For instance:

 

Classes.php:

 

namespace A {

    const FOO = 123;

    class Bar { . }

    class FooBaz { . }

}

 

namespace B {

    const FOO = 456;

    class Bar { . }

    class FooBar { . }

}

 

class Bar { . }

define('FOO', 789);

 

File.php:

 

import namespace A;

import namespace B;

 

 

$c = new Bar(FOO); // ambiguous classname/constant

 

Compile-time error on namespace B import? Or runtime error on ambiguous
class creation?

 

Jessie, how does your patch handle it? 

 

Looking at the modules patch, it appears to be a compile time error when the
second class is defined since it is based on zend_class_entry and
CG(class_tables).

 

 

Also, neither patch has scoped imports, they are global. Is this the
"preferred" method? Maybe it's the only method, not sure yet, still
scratching the surface here.

 

Bob

Reply via email to