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

Reply via email to