Signatur
Beschreibung
variant_neg() ist eine Windows-spezifische PHP-Funktion aus der COM/VARIANT-Erweiterung. Sie führt eine logische Negation (NOT) eines übergebenen Variant-Wertes durch und gibt das Ergebnis als neuen Variant-Wert zurück.
Die Funktion entspricht dem VBScript-Operator Not und wird hauptsächlich beim Umgang mit COM-Objekten und deren VARIANT-Datentypen verwendet, wie sie beispielsweise in Windows-Automatisierungsszenarien (z. B. Microsoft Office, ActiveX) auftreten.
Die logische Negation kehrt boolesche Werte um: Aus true wird false und umgekehrt. Bei numerischen Varianten wird das bitweise Komplement berechnet, ähnlich wie der PHP-Operator ~ bei Ganzzahlen.
Diese Funktion ist nur auf Windows-Systemen verfügbar, auf denen die PHP-COM-Erweiterung (php_com_dotnet.dll) geladen ist. Auf anderen Plattformen steht sie nicht zur Verfügung.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $variant Pflicht | mixed | Ein VARIANT-Wert, ein com-Objekt oder ein skalarer PHP-Wert, der in einen Variant umgewandelt werden kann. Dieser Wert wird negiert. |
Rückgabewert
true wird false zurückgegeben und umgekehrt. Bei numerischen Werten wird das bitweise Komplement zurückgegeben.Beispiele
Logische Negation eines booleschen Variant-Wertes
<?php
// Voraussetzung: Windows mit aktiver COM-Erweiterung
$varTrue = new VARIANT(true, VT_BOOL);
$varFalse = new VARIANT(false, VT_BOOL);
$resultA = variant_neg($varTrue);
$resultB = variant_neg($varFalse);
var_dump((bool) $resultA); // bool(false)
var_dump((bool) $resultB); // bool(true)
?>
Negation eines numerischen Variant-Wertes
<?php
// Voraussetzung: Windows mit aktiver COM-Erweiterung
$varNum = new VARIANT(5, VT_I4); // Ganzzahl 5
$result = variant_neg($varNum);
// Bitweises Komplement von 5 ist -6 (als 32-Bit-Integer)
echo (int) $result; // -6
?>
// Wichtig · Fallstricke
Plattformabhängigkeit: variant_neg() ist ausschließlich unter Windows verfügbar und erfordert die geladene COM/DOTNET-PHP-Erweiterung. Der Aufruf auf Linux oder macOS führt zu einem fatalen Fehler (Call to undefined function).
Unterschied zu PHP-NOT-Operator: Der PHP-Operator ! gibt immer einen nativen PHP-bool zurück, während variant_neg() einen VARIANT-Typ zurückgibt, was bei der Weitergabe an COM-Objekte wichtig sein kann.
Numerische Typen: Bei Ganzzahl-Varianten entspricht das Ergebnis dem bitweisen Komplement (~$n), nicht einer arithmetischen Vorzeichenumkehr. Für die arithmetische Negation (Vorzeichen umkehren) sollte stattdessen variant_sub() oder variant_mul() mit -1 verwendet werden.