我有两个班
a类作为父母
b级为孩子
a类和b类都具有相同的常数和一些值
我初始化儿童班b
现在,如果我想使用子类对象$ test
访问类的父类常量值
我怎么能这样做。
对于例如$test::version
//输出2.5.0,我想要2.4.0
<?php
class a{
const version='2.4.0';
public function childClassVersion(){
echo static::version;
}
public function parentClassVersion(){
echo self::version;
}
}
class b extends a{
const version='2.5.0';
}
$test=new b;
echo $test::version; // output 2.5.0
echo "<br>";
echo b::version; // output 2.5.0
echo "<br>";
echo a::version; //output 2.4.0
echo "<br>";
$test->childClassVersion(); // output 2.5.0
echo "<br>";
$test->parentClassVersion(); // output 2.4.0
echo "<br>";
答案 0 :(得分:1)
我不赞成评论中的讨论,但也许这就是你要找的东西:
<?php
class a{
const version='2.4.0';
public function childClassVersion(){
return static::version;
}
}
class b extends a{
const version='2.5.0';
public function parentClassVersion(){
return parent::version;
}
}
$test=new b;
var_dump($test::version); // output 2.5.0
var_dump(b::version); // output 2.5.0
var_dump(a::version); //output 2.4.0
var_dump($test->childClassVersion()); // output 2.5.0
var_dump($test->parentClassVersion()); // output 2.4.0