Start · Sprachen · PHP · Referenz · variant_fix

variant_fix

Funktion

Gibt den ganzzahligen Anteil einer Variant-Zahl zurück, indem der Nachkommaanteil abgeschnitten wird.

seit PHP 5.0.0 Kategorie: misc

Signatur

variant_fix(mixed $value): mixed

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

Typ
mixed
Beschreibung
Gibt ein VARIANT-Objekt zurück, das den ganzzahligen Anteil des übergebenen Werts enthält. Der Nachkommaanteil wird ohne Rundung in Richtung null abgeschnitten.

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
?>
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!)
?>
-3

// 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.