2016-03-25 30 views
0

访问类的父类的恒定出侧的值I有两个类
类A作为父
乙级作为子
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

对不起,目前尚不清楚你的问题是什么。您可以在自己展示时访问这两个值,那么缺少了什么? – arkascha

+0

使用子类对象访问父类常量 – daulat

+0

也许您在寻找'parent :: version'? – arkascha

回答

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 
+0

OP希望'$ test :: version'输出父类常量('2.4.0')。 –

+0

@u_mulder是的,这个问题已经被编辑了。 – arkascha

+0

使用$ test对象获取父类常量值...这不可能我认为 – daulat