Signatur
Beschreibung
variant_int extrahiert den ganzzahligen Anteil eines VARIANT-Wertes. Dies entspricht der Abschneideoperation (Truncation) in Richtung null – ähnlich wie intval() oder das Casting auf int in PHP, jedoch auf Windows-COM-VARIANT-Objekten.
Die Funktion ist Teil der COM/VARIANT-Erweiterung von PHP unter Windows und wird typischerweise beim Umgang mit COM-Automatisierungsobjekten (z. B. Excel, Word, ActiveX) verwendet, bei denen Daten als VARIANT ausgetauscht werden und eine Ganzzahloperation benötigt wird, ohne den COM-Kontext zu verlassen.
Im Gegensatz zu einem einfachen PHP-Cast gibt variant_int ein neues VARIANT-Objekt zurück, das weiterhin im COM-Umfeld verwendet werden kann. Bei negativen Werten wird in Richtung null abgeschnitten (z. B. -3.7 ergibt -3).
Die Funktion steht ausschließlich unter Windows zur Verfügung, da die COM-Erweiterung betriebssystemspezifisch ist.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $variant Pflicht | mixed | Ein VARIANT-Objekt oder ein kompatibler skalarer Wert, dessen ganzzahliger Anteil ermittelt werden soll. |
Rückgabewert
VARIANT-Objekt zurück, das den ganzzahligen Anteil (Truncation in Richtung null) des Eingabewerts enthält.Beispiele
Ganzzahligen Anteil eines positiven VARIANT-Wertes ermitteln
<?php
// Setzt eine funktionierende Windows-COM-Erweiterung voraus
$v = new VARIANT(4.7, VT_R8);
$result = variant_int($v);
echo variant_get_type($result) . ': ' . $result; // VARIANT mit Wert 4
Ganzzahligen Anteil eines negativen VARIANT-Wertes ermitteln
<?php
// Negative Werte werden in Richtung null abgeschnitten
$v = new VARIANT(-3.9, VT_R8);
$result = variant_int($v);
echo $result; // Ergibt -3, nicht -4
// Wichtig · Fallstricke
Nur unter Windows verfügbar: Die variant_int-Funktion ist Teil der COM-Erweiterung (ext/com_dotnet) und steht ausschließlich auf Windows-Systemen zur Verfügung. Auf Linux/macOS führt ein Aufruf zu einem fatalen Fehler.
Truncation vs. Rounding: Die Funktion schneidet den Nachkommaanteil ab (Truncation), rundet nicht. Für kaufmännisches Runden gibt es variant_round. Für das Abrunden in Richtung negativer Unendlichkeit (Floor) steht variant_fix zur Verfügung.