webentwicklung-frage-antwort-db.com.de

PHP Syntaxfrage: Was bedeuten das Fragezeichen und der Doppelpunkt?

Mögliches Duplikat:
kurze Frage zur PHP-Syntax

return $add_review ? FALSE : $arg;

Was bedeuten Fragezeichen und Doppelpunkt?

Vielen Dank

62
Petkun

Dies ist der PHP ternärer Operator (auch als bedingter Operator bezeichnet) - Wenn der erste Operand true auswertet, wird er als zweiter Operand ausgewertet, andernfalls als dritter Operand.

Stellen Sie es sich als eine "if" -Anweisung vor, die Sie in Ausdrücken verwenden können. Kann sehr nützlich sein, um präzise Aufgaben zu erledigen, die von bestimmten Bedingungen abhängen, z.

$param = isset($_GET['param']) ? $_GET['param'] : 'default';

Es gibt auch eine Kurzversion davon (ab PHP 5.3). Sie können den mittleren Operanden weglassen. Der Operator wird als erster Operand ausgewertet, wenn er wahr ist, und der dritte Operand ansonsten Beispiel:

$result = $x ?: 'default';

Es ist erwähnenswert, dass der obige Code bei Verwendung von zB $ _GET oder $ _POST eine undefinierte Indexnotiz auslöst und verhindert, dass wir eine längere Version mit isset oder einem Nullkoaleszenzoperator) verwenden müssen welches in PHP7 eingeführt wird:

$param = $_GET['param'] ?? 'default';
133
Paul Dixon

Es ist die ternäre Form des if-else-Operators. Die obige Aussage lautet im Wesentlichen so:

if ($add_review) then {
    return FALSE; //$add_review evaluated as True
} else {
    return $arg //$add_review evaluated as False
}

Weitere Informationen zu ternary op in PHP finden Sie hier: http://www.addedbytes.com/php/ternary-conditionals/

17
Cristian Ivascu