Signatur
Beschreibung
variant_fix() ist Teil der COM/VARIANT-Erweiterung von PHP und arbeitet mit Windows-VARIANT-Werten. Die Funktion gibt den ganzzahligen Anteil eines Variant-Werts zurück, indem der Nachkommaanteil ohne Rundung abgeschnitten wird – ähnlich wie intval() für gewöhnliche PHP-Werte, jedoch für VARIANT-Objekte.
Der Unterschied zu variant_round() besteht darin, dass variant_fix() grundsätzlich in Richtung null kürzt (Truncation), also weder auf- noch abrundet. Negative Zahlen wie -3.7 liefern daher -3, nicht -4.
Diese Funktion ist nützlich, wenn mit COM-Objekten unter Windows gearbeitet wird und ein ganzzahliger Wert aus einem VARIANT-Ausdruck extrahiert werden muss, ohne eine Rundungsoperation durchzuführen. Sie steht nur auf Windows-Systemen mit aktivierter COM-Erweiterung zur Verfügung.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $value Pflicht | mixed | Ein VARIANT-Objekt oder ein Wert, der in ein VARIANT konvertiert werden kann (z. B. eine Fließkommazahl). |
Rückgabewert
Beispiele
Ganzzahligen Anteil einer positiven Zahl extrahieren
<?php
// Voraussetzung: Windows mit COM-Erweiterung
$v = new VARIANT(4.75, VT_R8);
$result = variant_fix($v);
echo $result; // Ausgabe: 4
?>
Verhalten bei negativen Zahlen (Truncation in Richtung null)
<?php
// Voraussetzung: Windows mit COM-Erweiterung
$v = new VARIANT(-3.9, VT_R8);
$result = variant_fix($v);
echo $result; // Ausgabe: -3 (nicht -4!)
?>
// Wichtig · Fallstricke
Plattformabhängigkeit: variant_fix() ist ausschließlich unter Windows verfügbar und erfordert die aktivierte COM-Erweiterung (extension=com_dotnet in der php.ini). Auf Linux- oder macOS-Systemen ist diese Funktion nicht vorhanden.
Unterschied zu variant_int: Im Gegensatz zu variant_int(), das den Typ des Rückgabewerts explizit auf Integer setzt, kann variant_fix() den ursprünglichen VARIANT-Typ beibehalten. Für einfache PHP-Integer-Operationen ohne COM-Kontext sollte intval() oder ein expliziter Cast (int) bevorzugt werden.