2016-03-25 16 views
-1

ich eine Aussage etwas wie wünschen:

IF(someVar == someOtherVar) { 
//do some calculations here 
} 

Es sieht wie folgt aus, ohne Verwendung von Variablen:

IF($_RESULT[priArrest]== 'No') { 
//do some calculations here 
} 

Ich will „bauen“, dass IF-Anweisung als $x unter Verwendung von Daten aus eine CSV-Datei "matrixData" genannt

$x='$_RESULT['; 
$x.=$matrixData[0]; 
$x.="]='"; 
$x.=$matrixData[4]; 
$x.="'"; 
//$x defined as ....... $_RESULT[priArrest]== 'No' 

IF($x) { 
//do some calculations here 
echo ('BINGO'); 
} 

$x als .......definiert
IF($x) gibt immer TRUE zurück, weil $x definiert ist (ich verstehe, warum ich die ganze Zeit T bekomme).

Ich möchte IF($x) nur T zurückgeben, wenn der Inhalt von $x wahr ist.
dh: IF($x) immer bewertet, ob $x ist TRUE, nicht, ob $_RESULT[priArrest]=='No'

Was ist die Syntax, um das Ergebnis der $x eher als die wörtlichen $x zurückzukehren?
Ich kann leicht ECHO, was ich ($x) will, aber möchte lernen, wie man die $x in ein IF() einzubetten
I $x als $$x

versucht habe versucht, Definieren mit (nur meine Unwissenheit zu demonstrieren):

IF ($x) { 
} 


IF (($x)) { 
} 


IF (($$x)) { 
} 


IF ((${$x})) { 
} 


IF ((&$x)) { 
} 

Basierend auf Ergebnissen der Suche verschiedener Quellen von PHP helfen.

+1

Erm ... '$ _RESULT [ $ matrixData [0]] = $ matrixData [4]; '? Oder '==' für Vergleiche? –

+2

Sie machen da ein bisschen mehr als eine Variable. Sie haben einen tatsächlichen PHP-Ausdruck. Vielleicht schau mal in [eval] (http://php.net/manual/en/function.eval.php). – Chris

+1

$ x ist letztlich immer gleich einem String-Wert, weshalb es 'truthy' ist. Sie wollen 'if ($ _ RESULT [$ matrixData [0]] == $ matrixData [4])' testen, was Sie in einer einzigen Zeile tun können, ohne zuerst einen String zu erstellen. – rmirabelle

Antwort

0

Wie rmirabelle in einem Kommentar schrieb, können Sie den Zustand direkt verwenden:

if ($_RESULT[$matrixData[0]] == $matrixData[4]) { 
    echo ('BINGO'); 
} 
// Or use another condition: 
if ($_RESULT[$matrixData[0]] < $matrixData[4]) { 
    echo ('BINGO'); 
} 

Sie können auch diese Booleschen Wert für die spätere Verwendung speichern:

$x = ($_RESULT[$matrixData[0]] < $matrixData[4]); 
// … 
if ($x) { 
    echo ('BINGO'); 
}