Hello -
Soit le code :
abstract class foo
{
private __construct() {}
public static getInstance()
{
static $instance = null;
if (is_null($instance) == false)
return $instance;
else
{
$class = __CLASS__;
return new $class();
}
}
}
class extendedFoo extends foo
{
...
}
$instance = extendedFoo::getInstance();
echo (get_class($instance));
Je souhaiterai que le get_class() me revoie extendedFoo.
Or, il me renvoit foo.
L'objet créé via new dans foo::getInstance n'est donc pas du bon type, car __CLASS__ contient "foo" et pas "extendedFoo".
Quelqu'un sait il comment récupéré le nom de la classe qui a appelé la fonction statique ???
A+