2009-12-10 4 views

Répondre

7

Utilisez get_class ($ this).

Cela fonctionne pour la sous-classe, sous-sous-classe, la classe parente, tout. Essayez-le! ;)

1
<?php 

class Bob extends Person 
{ 

    public function __construct() 
    { 
     parent::__construct(); 
    } 

    public function whoAmI() 
    { 
     echo "Hi! I'm ".__CLASS__.", and my parent is named " , get_parent_class($this) , ".\n"; 
    } 
} 

class Person 
{ 
    public function __construct() 
    { 
     echo "Hello. My name is ".__CLASS__.", and I have a child named " , get_class($this) , ".\n"; 
    } 
} 

// Hello. My name is Person, and I have a child named Bob. 
$b = new Bob; 
// Hi! I'm Bob, and my parent is named Person. 
$b->whoAmI(); 
+0

Même ici - il voulait la classe enfant. – Franz

+0

Ce code est maintenant correct puisqu'il a été modifié. – Kevin

+1

Dans ma hâte, j'ai placé la logique principale au mauvais endroit. Je vais utiliser mon idée constante __CLASS__ pour faire une édition de plus. – simeonwillbanks

3
class Person 
{ 
    public function __construct() 
    { 
    echo get_class($this); 
    } 
} 

class Bob extends Person 
{ 
    //do some stuff 
} 

$b = new Bob; 

imprime Bob comme expliqué dans "Exemple # 2 Utilisation get_class() dans superclasse" à http://docs.php.net/get_class

Questions connexes