php - tool - freshdesk versions
Double nicht(!!) Operator in PHP (4)
"nicht nicht" ist in vielen Sprachen eine bequeme Methode, um zu verstehen, welchen Wahrheitswert die Sprache dem Ergebnis eines Ausdrucks zuordnet. Zum Beispiel in Python :
>>> not not []
False
>>> not not [False]
True
Es kann an Orten nützlich sein, an denen Sie einen komplexen Wert auf etwas wie "Gibt es überhaupt einen Wert?" Reduzieren möchten.
Was macht der double not- Operator in PHP?
Beispielsweise:
return !! $row;
Was würde der obige Code tun?
Das bedeutet, wenn $row
einen truthy Wert hat, wird true
, andernfalls false
und in einen booleschen Wert umgewandelt.
Hier finden Sie Beispielausdrücke für die boolesche Konvertierung von PHP-Dokumenten.
Expression Boolean
$x = ""; FALSE
$x = null; FALSE
var $x; FALSE
$x is undefined FALSE
$x = array(); FALSE
$x = array('a', 'b'); TRUE
$x = false; FALSE
$x = true; TRUE
$x = 1; TRUE
$x = 42; TRUE
$x = 0; FALSE
$x = -1; TRUE
$x = "1"; TRUE
$x = "0"; FALSE
$x = "-1"; TRUE
$x = "php"; TRUE
$x = "true"; TRUE
$x = "false"; TRUE
Es ist das gleiche (oder fast das gleiche - es könnte ein Eckfall sein) als Casting zu Bool. Wenn $row
zu true würde, dann !! $row
!! $row
ist auch wahr.
Aber wenn Sie (bool) $row
erreichen wollen, sollten Sie wahrscheinlich genau das verwenden - und nicht einige "interessante" Ausdrücke;)
Es ist nicht der "Doppel-Nicht-Operator", es ist der Nicht- Operator, der zweimal angewendet wird. Das Recht !
führt unabhängig vom Operanden zu einem booleschen Wert . Dann der Linke !
negiert diesen booleschen Wert.
Dies bedeutet, dass Sie für jeden wahren Wert (Zahlen ungleich Null, nicht leere Strings und Arrays usw.) den booleschen Wert TRUE
und für jeden falschen Wert (0, 0.0, NULL
, leere Strings oder leere Arrays) erhalten erhält den booleschen Wert FALSE
.
Es entspricht funktional einer Umwandlung in boolean
:
return (bool)$row;