Hi all,
RFC: about class names as values
PHP uses class names as values, but only in a couple of places.
String constanst after the "new" or "instanceof" operator --correct me if
I'm missing others-- are treated as class names.
if( $obj instanceof MyClass ) {
// $obj is instanceof Bar/Foo/MyClass
}
but what happen if the class name is used on other places?
function newInstance($class) {
return new $class;
}
$obj = newInstance( MyClass ); // notice. undefined constant MyClass
so you have to end up by writting....
$obj = newInstance( '\Bar\Foo\MyClass' );
which lacks of any semantic, it's not a class name, it's just a string.
My idea is that PHP could include a constant on each class, a string with
the full qualified class name
echo MyClass::CLASS; // \Bar\Foo\MyClass
$obj = newInstance( MyClass::CLASS );
As the "CLASS" is currently a reserved word is guarantied that nobody is
using as it today.
What do you think about?
Martin Scotta