(PHP 4, PHP 5, PHP 7, PHP 8)
intval — Konvertiert einen Wert nach integer
Gibt den integer-Wert von value
unter
Verwendung der angegebenen Basis (Standardwert ist
base
=10). intval() sollte nicht
auf Objekte angewandt werden, da dies eine Meldung vom Typ
E_WARNING
erzeugt und den Wert 1 zurückgibt.
value
Der skalare Wert (das kann ein Ausdruck oder eine einfache Variable sein, nicht jedoch ein Array oder Objekt.), der nach integer konvertiert werden soll.
base
Die Basis der Konvertierung
Hinweis:
Wenn
base
0 ist, wird die verwendete Basis durch das Format vonvalue
bestimmt:
- wenn die Zeichenkette ein Präfix "0x" (oder "0X") enthält, ist die Basis 16 (hexadezimal); andernfalls,
- wenn die Zeichenkette mit "0b" (oder "0B") beginnt, ist die Basis 2 (binär); andernfalls,
- wenn die Zeichenkette mit "0" beginnt, ist die Basis 8 (oktal); andernfalls,
- ist die Basis 10 (dezimal).
Der integer-Wert von value
bei Erfolg, sonst 0.
Leere Arrays geben den Wert 0 zurück, nichtleere Arrays den Wert 1.
Der Maximalwert hängt vom System ab. 32-Bit-Systeme haben einen maximalen
Wertebereich für signed integer von -2147483648 bis 2147483647. Also wird
beispielsweise auf solch einem System
intval('1000000000000')
2147483647 zurückgeben. Der
maximale signed integer-Wert auf 64-Bit-Systemen ist 9223372036854775807.
Zeichenketten werden meistens 0 zurückgeben, auch wenn das erste Zeichen hier entscheidend ist. Es gelten die normalen Regeln zur Umwandlung nach integer.
Version | Beschreibung |
---|---|
8.0.0 |
Die Fehlerstufe bei der Konvertierung eines Objekts wurde von
E_NOTICE auf E_WARNING
geändert.
|
Beispiel #1 intval()-Beispiele
Die folgenden Beispiele beziehen sich auf ein 64-Bit-System
<?php
echo intval(42); // 42
echo intval(4.2); // 4
echo intval('42'); // 42
echo intval('+42'); // 42
echo intval('-42'); // -42
echo intval(042); // 34
echo intval('042'); // 42
echo intval(1e10); // 10000000000
echo intval('1e10'); // 10000000000
echo intval(0x1A); // 26
echo intval('0x1A'); // 0
echo intval('0x1A', 0); // 26
echo intval(42000000); // 42000000
echo intval(420000000000000000000); // -4275113695319687168
echo intval('420000000000000000000'); // 9223372036854775807
echo intval(42, 8); // 42
echo intval('42', 8); // 34
echo intval(array()); // 0
echo intval(array('foo', 'bar')); // 1
echo intval(false); // 0
echo intval(true); // 1
?>
Hinweis:
Der Parameter
base
hat keinerlei Auswirkung, wenn der Parametervalue
keine Zeichenkette ist.