2017-01-02 1 views
0

문제 : 클래스 속성의 이름을 가져옵니다.Properties 클래스의 이름

<?php 

class Vasya { 
    public $name = __CLASS__; 
} 

$class = new Vasya(); 
echo $class->name; // result Vasya 

class Petro extends Vasya { } 

$class = new Petro(); 
echo $class->name; // result Vasya // Why??? 

속성에서 상속 된 클래스의 이름을 얻는 방법은 무엇입니까?

+3

가능한 복제 [? 어떻게 PHP에서 클래스 이름을받을 수 있나요] (http://stackoverflow.com/questions/15103810/how-do-i- :이 경우는 부모 클래스의 변수를 무시 get-class-name-in-php) – fpietka

+0

[하위 클래스 인 php 및 parent 키워드에서 부모 변수에 액세스 하시겠습니까?] (http://stackoverflow.com/questions/10852028/accessing-a-parents-variable-from- 하위 클래스 -php-and-parent-keyword) –

답변

1

왜냐하면 $name은 상위 클래스에서만 선언되기 때문입니다. 그래서 부모 클래스의 클래스 이름을 가지고 있습니다. 하위 클래스 이름을 원하면 하위 클래스에서 변수를 선언하십시오.

<?php 

class Vasya { 
    public $name = __CLASS__; 
} 

$class = new Vasya(); 
echo $class->name; // result Vasya 

class Petro extends Vasya { 
    public $name = __CLASS__; 
} 

$class = new Petro(); 
echo $class->name; // result Petro