2012-04-06 12 views
1

Ich versuche, eine allgemeine wenn für einige Variablen, die ich in meiner Datenbank habe. Lassen Sie uns sagen, dass wir die nächsten Variablen und Werte haben:PHP Wenn mehrere Variablen

$var1 = "abc"; 
$var2 = "n/a"; 
$var3 = "das"; 
$var4 = "n/a"; 

Meine if-Anweisung alle diese Variablen enthalten muss, prüfen Sie, welche Variablen enthalten „n/a“ und für jede Variable, die „n/a“ das Skript enthalten muss Machen Sie eine andere Variable $var21 = "Not Available". Ist das möglich?

+0

Sie können ein def ault Wert in Ihrer Datenbank. Vielleicht macht es den Trick –

+1

Verwenden von Arrays? + – Neysor

+0

Sicher ist es möglich - warum müssen Sie das tun? – Ryan

Antwort

1

Ich würde nicht variable variables verwenden, nur aufgrund persönlicher Vorlieben. Wenn Sie masochistisch sind, you can certainly try.

Ich würde stattdessen einen zusätzlichen Hash erstellen. Dies würde die Notwendigkeit für eine if-Anweisung sowie entfernen. :)

$descriptions = array(
    "n/a" => "Not Available", 
    "brb" => "Be Right Back", 
    "iee" => "I'm easily extendable" 
); 

Dann, wenn Sie den Text für einen bestimmten Schlüssel benötigen, können Sie nur geben

$descriptive_text = $descriptions[$var1]; 

Aktualisiert:

Um es auf den ursprünglichen gesetzt, wenn kein Wert in $descriptions, gehen Sie folgendermaßen vor:

$descriptive_text = (is_null($descriptions[$var1])) ? $var1 : $descriptions[$var1]; 
+0

und wenn die Variable nicht "n/a" enthält, wie kann ich mit dem tatsächlichen Wert gehen? – user1040157

+0

Aktualisiert. Ungetestet, aber es sollte funktionieren. –

+0

es funktioniert. Danke, Mann! – user1040157

0

Sie sollten dafür Arrays verwenden.

$array = array("abc", "n/a", "das", "n/a"); 
foreach($array as $key => $value) 
{ 
if($value == "n/a") 
{ 
    echo "Do Something!"; 
} 
} 

Siehe auch: Arrays.