TYΠOI: Integers (Ακέραιοι)

Ένας integer είναι ένας αριθμός του συνόλου Z = {..., -2, -1, 0, 1, 2, ...}.
Οι ακέραιοι μπορούν να καθοριστούν στο δεκαδικό (με βάση το 10), δεκαεξαδικό (με βάση το 16) ή οκταδικό (με βάση το 8) σύστημα, και προαιρετικά μπορεί να προστεθεί το πρόσημο (- ή +).
Αν χρησιμοποιείτε το οκταδικό σύστημα, πρέπει να γράφετε πριν το αριθμό το 0 (μηδέν), και αν χρησιμοποιείτε το δεκαεξαδικό πρέπει να γράφετε πριν τον αριθμό το 0x.
<?php
$a
= 1234; # decimal number
$a = -123; # a negative number
$a = 0123; # octal number (equivalent to 8 decimal)
$a = 0x1A; # hexadecimal number (equivalent to 16 decimal)
?>
Επισήμως, η πιθανή δομή για τα λεκτικά ακεραίων είναι:
<?php
decimal : [1-9][0-9]*
| 0
hexadecimal : 0[xX][0-9a-fA-F]+
octal : 0[0-7]+
integer : [+-]?decimal
| [+-]?hexadecimal
| [+-]?octal
?>
Αν προσδιορίσετε έναν αριθμός εκτός των ορίων του τύπου integer, θα διερμηνευτεί ως float (κινητής υποδιαστολής). Επίσης, αν κάνετε μια πράξη το αποτέλεσμα της οποίας δίνει αριθμό πέρα από τα όρια του τύπου integer, θα επιστραφεί αριθμός τύπου float (κινητής υποδιαστολής).
<?php
$large_number
=  2147483647;
var_dump($large_number);
// output: int(2147483647)

$large_number =  2147483648;
var_dump($large_number);
// output: float(2147483648)

// this goes also for hexadecimal specified integers:
var_dump( 0x80000000 );
// output: float(2147483648)

$million = 1000000;
$large_number =  50000 * $million;
var_dump($large_number);
// output: float(50000000000)
?>
Δεν υπάρχει τελεστής διαίρεσης στην PHP. Το 1/2 μετατρέπεται στον αριθμό float 0.5. Μπορείτε να μετατρέψετε την τιμή σε ακέραιο να το στρογγυλοποιήσετε προς τα κάτω, ή να χρησιμοποιήσετε τη συνάρτηση round() .
<?php
var_dump
(25/7);         // float(3.5714285714286)
var_dump((int) (25/7)); // int(3)
var_dump(round(25/7));  // float(4)
?>

Για να μετατρέψετε ρητά μια τιμή σε integer, χρησιμοποιήστε είτε το (int) είτε το (integer) για τη μετατροπή (cast). Πάντως, στις περισσότερες περιπτώσεις δεν χρειάζεται να χρησιμοποιήσετε την cast, αφού η τιμή θα μετατραπεί αυτόματα αν ένας τελεστής, μια συνάρτηση ή μια δομή ελέγχου απαιτεί μια παράμετρο τύπου integer . Μπορείτε επίσης να μετατρέψετε μια τιμή σε ακέραιο μέσα στη συνάρτηση intval().
Από booleans FALSE θα προκύψει 0 (μηδέν), και από TRUE θα προκύψει 1 (ένα).
Από αριθμούς κινητής υποδιαστολής Όταν γίνεται μετατροπή από αριθμού κινητής υποδιαστολής σε ακέραιο, ο αριθμός θα στρογγυλευτεί προς το μηδέν.
Αν ο αριθμός κινητής υποδιαστολής είναι εκτός των ορίων του ακεραίου (συνήθως +/- 2.15e+9 = 2^31), το αποτέλεσμα είναι απροσδιόριστο, αφού ο αριθμός κινητής υποδιαστολής δεν έχει αρκετή ακρίβεια για να δώσει ένα ακριβές ακέραιο αποτέλεσμα. Καμιά προειδοποίηση, ούτε κάποια άλλη υπενθύμιση γίνεται σε τέτοιες περιπτώσεις!


Syntax PHP, v1.1 / April 2006

Σήμερα είναι

Συμβαίνουν τώρα

Χρηστικά

Members