Late FQCN resolution using ::class
Hi everybody,
I have read up on this, and done some testing.
First up, my findings with PHP5.5 alpha5:
<?php
namespace spacy;
class classy {
public static function fqcn() {
/* This works but is not useful enough: */
//return self::class;
$me = 'classy';
/* This just doesn't work, but I wish it did: */
//return $me::class;
/* This simply does not work as expected: */
return eval("return $me::class;");
/* Output: "classy" - Expected output: "spacy\classy" */
}
}
?>
I'm trying to late resolve a class name contained in a variable to the FQCN. I understand that
this is hard (maybe even impossible) with the current implementation, because class name resolution
happens compile time, but eval("return $me::class;") simply returns something that is
weird.
I guess what I'm trying to ask is whether it would be impossible to support late FQCN
resolution in any way? It would be very useful for frameworks to be able to do this.
- Jens Riisom Schultz
Thread (16 messages)