<?php class Config { public function class_name(){ echo __CLASS__; } } class ConfigExt extends Config{ } $a=new ConfigExt(); $a->class_name();
これを実行すると、、、、
$php test.php Config
えーーーーーーー。継承先で __CLASS__変数を参照すると、継承元のクラス名が戻ってくる。orz
static変数もちょっと・・・
<?php class Config{ public static $config = array(); } class ACon extends Config{ } class Bcon extends Config{} ACon::$config["a"] =1; BCon::$config["b"] =2; var_dump(BCon::$config);
これを実行すると・・・
array(2) { ["a"]=> int(1) ["b"]=> int(2) }
Static 変数は継承元と継承先で共有されている。なんだかなー。なんだかなー。Static変数はそういうものなんだろうけど、__CLASS__定数は実行時に評価されて欲しい気がするけど。うーん