PHP- nummers
In dit hoofdstuk gaan we dieper in op gehele getallen, drijvers en tekenreeksen.
PHP-nummers
Een ding om op te merken over PHP is dat het automatische conversie van gegevenstypes biedt.
Dus als u een geheel getal aan een variabele toewijst, is het type van die variabele automatisch een geheel getal. Als u vervolgens een tekenreeks aan dezelfde variabele toewijst, verandert het type in een tekenreeks.
Deze automatische conversie kan soms uw code breken.
PHP gehele getallen
2, 256, -256, 10358, -179567 zijn allemaal gehele getallen.
Een geheel getal is een getal zonder decimalen.
Een integer gegevenstype is een niet-decimaal getal tussen -2147483648 en 2147483647 in 32-bits systemen en tussen -9223372036854775808 en 9223372036854775807 in 64-bits systemen. Een waarde die groter (of lager) is, wordt opgeslagen als float, omdat deze de limiet van een geheel getal overschrijdt.
Opmerking: Een ander belangrijk ding om te weten is dat zelfs als 4 * 2.5 10 is, het resultaat wordt opgeslagen als float, omdat een van de operanden een float is (2.5).
Hier zijn enkele regels voor gehele getallen:
- Een geheel getal moet minimaal één cijfer hebben
- Een geheel getal mag GEEN decimale punt hebben
- Een geheel getal kan zowel positief als negatief zijn
- Gehele getallen kunnen in drie formaten worden opgegeven: decimaal (10-gebaseerd), hexadecimaal (16-gebaseerd - voorafgegaan door 0x) of octaal (8-gebaseerd - voorafgegaan door 0)
PHP heeft de volgende vooraf gedefinieerde constanten voor gehele getallen:
- PHP_INT_MAX - Het grootste ondersteunde gehele getal
- PHP_INT_MIN - Het kleinste ondersteunde gehele getal
- PHP_INT_SIZE - De grootte van een geheel getal in bytes
PHP heeft de volgende functies om te controleren of het type variabele integer is:
- is_int()
- is_integer() - alias van is_int()
- is_long() - alias van is_int()
Voorbeeld
Controleer of het type van een variabele integer is:
<?php
$x = 5985;
var_dump(is_int($x));
$x = 59.85;
var_dump(is_int($x));
?>
PHP zweeft
Een float is een getal met een komma of een getal in exponentiële vorm.
2.0, 256,4, 10.358, 7.64E+5, 5.56E-5 zijn allemaal drijvers.
Het gegevenstype float kan gewoonlijk een waarde tot 1.7976931348623E+308 (platformafhankelijk) opslaan en heeft een maximale nauwkeurigheid van 14 cijfers.
PHP heeft de volgende voorgedefinieerde constanten voor floats (vanaf PHP 7.2):
- PHP_FLOAT_MAX - Het grootste representeerbare getal met drijvende komma
- PHP_FLOAT_MIN - Het kleinste representeerbare positieve drijvende-kommagetal
- - PHP_FLOAT_MAX - Het kleinste representeerbare negatieve drijvende-kommagetal
- PHP_FLOAT_DIG - Het aantal decimale cijfers dat kan worden afgerond in een float en terug zonder precisieverlies
- PHP_FLOAT_EPSILON - Het kleinste representeerbare positieve getal x, zodat x + 1.0 != 1.0
PHP heeft de volgende functies om te controleren of het type variabele float is:
- is_float()
- is_double() - alias van is_float()
Voorbeeld
Controleer of het type variabele float is:
<?php
$x = 10.365;
var_dump(is_float($x));
?>
PHP Oneindigheid
Een numerieke waarde die groter is dan PHP_FLOAT_MAX wordt als oneindig beschouwd.
PHP heeft de volgende functies om te controleren of een numerieke waarde eindig of oneindig is:
De PHP-functie var_dump() retourneert echter het gegevenstype en de waarde:
Voorbeeld
Controleer of een numerieke waarde eindig of oneindig is:
<?php
$x = 1.9e411;
var_dump($x);
?>
PHP NaN
NaN staat voor Geen Nummer.
NaN wordt gebruikt voor onmogelijke wiskundige bewerkingen.
PHP heeft de volgende functies om te controleren of een waarde geen getal is:
De PHP-functie var_dump() retourneert echter het gegevenstype en de waarde:
Voorbeeld
Ongeldige berekening retourneert een NaN-waarde:
<?php
$x = acos(8);
var_dump($x);
?>
PHP numerieke tekenreeksen
De PHP-functie is_numeric() kan worden gebruikt om te bepalen of een variabele numeriek is. De functie retourneert waar als de variabele een getal of een numerieke tekenreeks is, anders onwaar.
Voorbeeld
Controleer of de variabele numeriek is:
<?php
$x = 5985;
var_dump(is_numeric($x));
$x = "5985";
var_dump(is_numeric($x));
$x = "59.85" + 100;
var_dump(is_numeric($x));
$x = "Hello";
var_dump(is_numeric($x));
?>
Opmerking: Vanaf PHP 7.0: De functie is_numeric() retourneert FALSE voor numerieke tekenreeksen in hexadecimale vorm (bijv. 0xf4c3b00c), omdat ze niet langer als numerieke tekenreeksen worden beschouwd.
PHP Casting strings en floats naar gehele getallen
Soms moet u een numerieke waarde in een ander gegevenstype gieten.
De functie (int), (integer) of intval() wordt vaak gebruikt om een waarde om te zetten in een geheel getal.
Voorbeeld
Werp float en string naar integer:
<?php
// Cast float to int
$x = 23465.768;
$int_cast = (int)$x;
echo $int_cast;
echo "<br>";
// Cast string to int
$x =
"23465.768";
$int_cast = (int)$x;
echo $int_cast;
?>