2016-06-22 11 views
0

Ich habe 2 Klassen erstreckt sich von Enum-Klasse: jeder von ihnen wie folgt aussieht:Verbindung zwischen 2 Enum in symfony/php

class firstEnum extends Enum{ 

    const x= 1; 

    const y= 2; 

    const z= 5; 

    const w= 6; 


} 

class secondEnum extends Enum{ 

    const a= 1; 

    const b= 2; 


} 

ich das „a“ von der zweiten ENUM verlassen auf den ersten

erhalten müssen

zum Beispiel: ich habe von dem Benutzer bekam den param: 1 und zum ersten Aufzählungs gehen und die const bekommen „x“

und ich brauche jetzt die const „a“ hängt die Anzahl der x , wie man kann ich das machen?

+0

Für jetzt habe ich nur eine Frage "WARUM würdest du das tun?" Klingt wie Missbrauch von Konstanten. Aber bitte geben Sie mehr Fallinformationen an. Vielleicht können wir Ihnen eine andere Lösung anbieten. – lllypa

Antwort

0

Sie können eine statische Methode erstellen, die ... eem Ihnen das übergebene Argument zurückgibt ?!

public static function getTheOne($searchValue) 
{ 
    foreach ([ 
     self::a, 
     self::b, 
    ] as $value) { 
     if ($searchValue == $value) { 
      return $value; // makes no sense 
     } 
    } 
} 

Aber das klingt sinnlos. Also, was ist dein Ziel? Vielleicht brauchen Sie eine Konfiguration in Ihrer Klasse und haben eine ähnliche Methode, die Ihnen einen Schlüssel/Namen für den Wert des Vorhangs zurückgibt?

private static $validValues = [ 
    'value #1' => 1, 
    'value #2' => 2, 
]; 

public static function getTheOne($searchValue) 
{ 
    foreach (self::$validValues as $key => $value) { 
     if ($searchValue == $value) { 
      return $key; 
     } 
    } 
} 
Verwandte Themen