(PHP 4, PHP 5)
is_subclass_of — Détermine si un objet est une sous-classe d'une classe donnée
Vérifie si l'objet object
a la classe
class_name
parmi ses parents.
object
Un nom de classe ou une instance d'un objet
class_name
Le nom de la classe
allow_string
Si ce paramètre est défini à FALSE
, un nom de classe sous forme
de chaîne de caractères dans le paramètre object
n'est pas autorisé. Ceci permet d'éviter d'appeler l'autoloader si la classe
n'existe pas.
Cette fonction retourne TRUE
si l'objet object
est une instance d'une classe qui est une sous-classe de
class_name
, FALSE
sinon.
Version | Description |
---|---|
5.3.9 |
Ajout du paramètre allow_string .
|
5.0.3 |
vous pouvez également spécifier le paramètre object
en tant que chaîne de caractères (le nom de la classe).
|
Exemple #1 Exemple avec is_subclass_of()
<?php
// Définit une classe
class WidgetFactory
{
var $oink = 'moo';
}
// Définit une sous-classe
class WidgetFactory_Child extends WidgetFactory
{
var $oink = 'oink';
}
// Création d'un nouvel objet
$WF = new WidgetFactory();
$WFC = new WidgetFactory_Child();
if (is_subclass_of($WFC, 'WidgetFactory')) {
echo "oui, \$WFC est une sous-classe de la classe WidgetFactory\n";
} else {
echo "non, \$WFC n'est pas une sous-classe de la classe WidgetFactory\n";
}
if (is_subclass_of($WF, 'WidgetFactory')) {
echo "oui, \$WF est une sous-classe de la classe WidgetFactory\n";
} else {
echo "non, \$WF n'est pas une sous-classe de la classe WidgetFactory\n";
}
// utilisable uniquement depuis PHP 5.0.3
if (is_subclass_of('WidgetFactory_Child', 'WidgetFactory')) {
echo "oui, WidgetFactory_Child est une sous-classe de la classe WidgetFactory\n";
} else {
echo "non, WidgetFactory_Child n'est pas une sous-classe de la classe WidgetFactory\n";
}
?>
L'exemple ci-dessus va afficher :
oui, $WFC est une sous-classe de la classe WidgetFactory non, $WF n'est pas une sous-classe de la classe WidgetFactory oui, WidgetFactory_Child est une sous-classe de la classe WidgetFactory
Note:
L'usage de cette fonction utilisera toutes les autoloaders enregistrés si la classe n'est pas encore connue.