2017-01-02 14 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-の可能性のある重複 – fpietka

+0

可能な重複)に-PHP-クラス名を-取得[サブクラスPHPと親キーワードから親の変数にアクセスします?](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 
関連する問題