2016-03-25 3 views
0

Ich habe zwei Klassen
Klasse eine als Mutter
Klasse b als Kind
Klasse A und Klasse B beide mit einigen Werten gleichen konstanten haben
Und ich initialisiere Kindklasse b
Jetzt, wenn ich auf Wert der Elternklasse zugreifen möchte Konstante Seite der Klasse mit Kind Klasse Objekt $ Test
Wie kann ich das tun.
Für zB $test::version // Ausgabe 2.5.0, was ich 2.4.0 wollenwie Wert der Elternklasse konstant aus der Seite der Klasse zuzugreifen Kind mit Klasse

<?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

Es tut uns leid, es ist unklar, was Ihr Problem ist. Sie können auf beide Werte zugreifen, wenn Sie sich selbst zeigen. Was fehlt also? – arkascha

+0

mit Kind Klasse Objekt Zugriff Elternklasse Konstante – daulat

+0

Vielleicht suchen Sie nach "Eltern :: Version"? – arkascha

Antwort

1

ich aus der Diskussion in den Kommentaren nicht sicher bin, aber vielleicht das ist, was Sie suchen:

<?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 möchte '$ test :: version' die übergeordnete Klassenkonstante ausgeben (' 2.4.0'). –

+0

@u_mulder Ja, die Frage wurde jetzt bearbeitet. – arkascha

+0

Verwenden Sie $ Test-Objekt, um Elternklasse konstanten Wert zu erhalten ... Es ist nicht möglich, ich denke – daulat

Verwandte Themen