2012-04-10 9 views
2

Ist jemand in der Lage, den meaing des folgenden statment, und die Art von PHP zu erklären, es so ist reffering ich die weitere Forschung tun:

$foo = ($variation_id>0) ? $variation_id : $item_id;

I Suche versucht, aber nicht wirklich wissen, was Ich suche nach.

Was ich versuche, um herauszufinden, ist der Name und die Bedeutung der folgenden Syntax ?/: und ist ($variation_id>0) nur eine Abkürzung if-Anweisung?

- Ich stolperte nur über bedingte Variablen, obwohl eine nette einfache Erklärung immer noch geschätzt werden würde.

Antwort

0

Das ist ein ternärer Zustand. Wenn die Bedingung links vor dem '?' ist wahr, es führt die Aussage nach dem '?' und vor dem Doppelpunkt. wenn nicht, dann führt es die Anweisung danach aus.

in Englisch, sagt dies "die Variation ID verwenden, wenn es größer als Null ist, sonst Verwendung Artikel-ID"

0
$foo = ($variation_id>0) ? $variation_id : $item_id; 

bedeutet

if($variation_id>0) 
{ 
    $foo =$variation_id // if true 
} 
else 
{ 
    $foo =$item_id; // if false 
} 

Lassen Sie uns brachs

$foo=($variation_id>0) ? // This is condition 
$variation_id : // This value will be populated by variable '$foo' if condition is true 
$item_id; // This value will be populated by variable '$foo' if condition is false 

Bekannt als ternäre Anweisung/Operation, Abkürzung if else

0

Dies ist nur eine Abkürzung, geht so:

sagen wir mal, Sie haben eine Funktion.

Am Ende wollen Sie einen Wert zurück, aber mit einer Ausnahme, wenn der Wert 0.

so tun Sie:

return ($value != 0) ? this_will_be_returned_if_true : this_will_be_returned_if_false; 

Sie, dass auch in Variablen zugewiesen werden tun können.

Muster:

(Bool statement) ? true : false; 
4

Diese Struktur ternäre Struktur und in kurzer Form von If genannt wird ... Else

Ihre Snippet:

$foo = ($variation_id>0) ? $variation_id : $item_id; 

Wandelt in

if($variation_id>0) { 
    $foo = $variation_id; 
} else { 
    $foo = $item_id; 
} 

Basica lly, kommt die Syntax etwas nach unten wie diese

$variable = (<CONDITION>) ? <TRUE EXPRESSION> : <FALSE EXPRESSION>; 

Sie auch mehrere dreiteiligen Struktur in einer Linie verbinden kann, aber es ist besser, wenn Sie verwenden normal, wenn wenn diese über kompliziert ist.