Question

J'ai une fonction qui obtient une classe qui lui est passé comme paramètre. Je voudrais obtenir le nom de la classe de la classe passée comme une chaîne.

J'ai essayé de mettre cette méthode dans la classe passée:

function getClassName()
    {
        return __CLASS__;
    }

mais si la classe est étendue, je supposais ce renverrait le nom de la sous-classe, mais il retourne toujours le nom de la super classe que je trouve un peu bizarre.

donné une var $ passé à une fonction en tant que paramètre, est-il un moyen d'obtenir une chaîne du nom de la classe?

Merci !!

Était-ce utile?

La solution

Voir get_class , qui devrait être exactement ce que vous essayez à atteindre.

$class_name = get_class($object);

Autres conseils

façon Simplest comment obtenir le nom de classe sans espace de noms est:

$class = explode('\\', get_called_class());
echo end($class);

Ou avec preg_replace

echo preg_replace('/.*([\w]+)$/U', '$1', get_called_class());

__ __ CLASSE avec retour le nom de la classe la méthode est mise en œuvre.

Si vous voulez obtenir le nom de la classe d'un objet passé, vous pouvez utiliser:

get_class($param);

En outre, si vous utilisez alors les classes PHP5 de réflexion fournies sont également utiles.

Utilisez get_class :

$className = get_class($object);

Droit des php docs: http: //uk.php .net / manuel / fr / function.get-class.php

<?php

abstract class bar {
    public function __construct()
    {
        var_dump(get_class($this));
        var_dump(get_class());
    }
}

class foo extends bar {
}

new foo;

?>

The above example will output:

string(3) "foo"
string(3) "bar"

vous pouvez également ajouter une méthode dans le retour de cette classe passé (s):

var_dump (get_called_class ());

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top