2012-07-26 6 views
0

어떻게 부모 클래스 대신 하위 클래스의 클래스 이름을 가져올 수 있습니까? 둘 다 a을 인쇄하지만 두 번째 var_dump()b을 인쇄해야합니다.PHP에서 클래스 이름을 상속하는 방법은 무엇입니까?

<?php 
    class a 
    { 
     public $name; 

     public function __construct() 
     { 
      $this->name=get_class(); 
     } 
    } 

    class b extends a 
    { 
     public function b() 
     { 
      parent::__construct(); 
     } 
    } 

    $a= new a(); 
    $b=new b(); 

    var_dump($a); //prints a 
    var_dump($b); //prints a, i want to be printed b here 
?> 

답변

2

패스 $thisget_class()에 :

$this->name = get_class($this); 
+0

당신은 왜 이것이 작동하지 않고 $를 지나치지 않고 설명 할 수 있습니까? 설명서에 클래스 컨텍스트에 있으면 매개 변수에서 아무 것도 전달할 필요가 없다고 말합니다. – varuog

+0

그리고 get_class()의 상수 _ _CLASS_ _instead를 사용하여 수행 할 수 있습니까? 현재의 아동반으로 제대로 해결 될 것인가? – varuog

+1

@ user1538127 :'get_class()'는 인자가 생략되었을 때 함수가 호출되는 클래스의 이름을 반환합니다. 'a' 클래스 대신에 인수가 생략되면 "a"를 반환합니다. '__CLASS__'를 사용하면 ** 작동하지 않습니다 **. –

관련 문제