それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

phpのバグ?

<?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__定数は実行時に評価されて欲しい気がするけど。うーん