Signatur
Beschreibung
variant_abs() berechnet den absoluten Betrag eines VARIANT-Wertes und ist Teil der Windows-COM-Erweiterung von PHP. Die Funktion verhält sich analog zu abs(), arbeitet jedoch speziell mit COM-VARIANT-Objekten zusammen, wie sie beim Zugriff auf COM-Schnittstellen (z. B. Microsoft Office-Anwendungen) auftreten können.
Ein VARIANT ist ein COM-spezifischer Datentyp, der verschiedene Werte unterschiedlicher Typen kapseln kann (Integer, Float, String, Boolean usw.). variant_abs() nimmt diesen Wert, ermittelt den absoluten Betrag und gibt das Ergebnis als neues VARIANT-Objekt zurück.
Die Funktion ist ausschließlich unter Windows verfügbar und setzt die PHP-COM-Erweiterung (ext/com_dotnet) voraus. Sie ist nützlich, wenn Berechnungen direkt auf VARIANT-Objekten durchgeführt werden müssen, ohne diese vorher in native PHP-Typen konvertieren zu wollen.
Wird ein gewöhnlicher PHP-Skalar (z. B. ein Integer oder Float) übergeben, wird dieser intern in ein VARIANT-Objekt umgewandelt, bevor der absolute Wert berechnet wird.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $value Pflicht | mixed | Ein VARIANT-Objekt oder ein skalarer PHP-Wert (Integer, Float usw.), dessen absoluter Betrag berechnet werden soll. |
Rückgabewert
VARIANT-Objekt zurück, das den absoluten Betrag des übergebenen Wertes enthält. Bei einem negativen Eingabewert wird der entsprechende positive Wert zurückgegeben.Beispiele
Absoluten Wert eines negativen VARIANT berechnen
<?php
// Setzt Windows und die COM-Erweiterung voraus
$variant = new VARIANT(-42, VT_I4);
$result = variant_abs($variant);
echo (int) $result; // Ausgabe: 42
?>
Absoluten Wert eines negativen Floats per VARIANT berechnen
<?php
// Setzt Windows und die COM-Erweiterung voraus
$variant = new VARIANT(-3.14, VT_R8);
$result = variant_abs($variant);
echo (float) $result; // Ausgabe: 3.14
?>
// Wichtig · Fallstricke
Plattformabhängigkeit: variant_abs() ist ausschließlich unter Windows verfügbar und erfordert die aktivierte COM-Erweiterung (extension=php_com_dotnet.dll in der php.ini). Auf Linux/macOS-Systemen existiert diese Funktion nicht und führt zu einem fatalen Fehler.
Für reine PHP-Berechnungen ohne COM-Kontext sollte stattdessen die native Funktion abs() verwendet werden, da diese plattformunabhängig und performanter ist.