如何使用子类访问类的父类常量的值

时间:2016-03-25 07:07:57

标签: php

我有两个班 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>";

1 个答案:

答案 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