2016-04-13 5 views
2

Ich scheine, dass es eine Beschränkung gibt, eine Inline-if-Anweisung in PHP zu verwenden, wenn Sie zurückkehren möchten.Warum können Sie eine Inline-Anweisung if nicht verwenden?

function example($Variable) 
{ 
    ((int) (++$Variable) == 1) ? return true : return false; 
} 

$test = example(1); 

Erwartet: false

Dies gibt einen Fehler, der seltsam ist, weil ich das noch nie gesehen.

Fehlertyp: 4

Nachricht: Syntaxfehler, unerwartete 'Rückkehr' (T_RETURN)

Kann mir jemand erklären, warum Sie nicht die Rückkehr innerhalb einer if-Anweisung wie folgt verwenden können?

+7

'return ((int) (++ $ Variable) == 1)? true: false; ' –

+1

Hinweis: ... http://php.net/manual/en/language.operators.comparison.php#language.operators.comparison.ternary – Rizier123

+1

Sie brauchen dort nicht' return'. Setzen Sie es vor dem Inline-If. –

Antwort

8

Das Ternär liefert bereits die Ergebnisse. Sie können keine Rückgabefunktion zurückgeben.

können Sie Rückkehr machen, bevor variable Ergebnis wie folgt aus:

function example($Variable) 
{ 
    return ((int) (++$Variable) == 1) ? true : false; 
} 
$test = example(1); 
+0

Ah, ich kann nicht glauben, dass ich das nie bemerkt habe. Ich dachte, es gäbe einen offensichtlichen Grund dafür, dass das nicht funktionierte. Geschätzt - wird markiert, wenn ich kann! – KDOT

+0

Ich mag das Wort, Ternär, wusste nie, dass es existiert. Bekannt. @PhiterFernandes – KDOT

+0

Ja, ternärer Ausdruck ist der Name für das, was Sie * inline if-Anweisung * genannt haben. :) – Phiter

Verwandte Themen