Στην php υπάρχουν 8 διαφορετικοί τύποι δεδομένων, από τους οποίους οι τέσσερις είναι διακριτοί (όπως ακέραιοι, πραγματικοί, αλφαριθμητικά και booleans), δύο είναι σύνθετοι τύποι (πίνακες και αντικείμενα), και οι δυο τελευταίοι είναι ειδικοί τύποι (κενό και αναφορές). Σε αυτή την ενότητα θα επεξηγήσουμε μόνο τους διακριτούς τύπους δεδομένων. Για τους πίνακες τα αντικείμενα και τους ειδικούς τύπους θα αναφερθούμε σε αργότερη ενότητα.

Ακέραιοι

Οι ακέραιοι αριθμοί είναι όλοι οι αριθμοί χωρίς υποδιαστολή όπως το 0, το 23, και το 333. Το αποδεκτό εύρος συνήθως εξαρτάται από την εκάστοτε πλατφόρμα που χρησιμοποιούμε αλλά συνήθως είναι μεταξύ -2.147.483.648 έως +2.147.483.647. Οι αριθμοί αυτοί μπορούν να αναπαρασταθούν με διάφορους τρόπους, όπως με το δεκαδικό σύστημα, το δυαδικό, το οκταδικό ή το δεκαεξαδικό. Αν χρησιμοποιήσουμε δεκαδική αναπαράσταση δεν χρειάζεται να συμπεριλάβουμε τα αρχικά μηδενικά. Πριν τον αριθμό μπορούμε να συμπεριλάβουμε έναν προσδιοριστή πρόσθεσης (+) ή μείωσης (-) με τον οποίο καθορίζουμε αν ο αριθμός είναι θετικός ή αρνητικός. Αν δεν χρησιμοποιηθεί ένας τέτοιος προσδιοριστής τότε αυτομάτως θεωρείται πως πρόκειται για θετικό(+).

2014
-500
+99

Για να χρησιμοποιήσουμε την αναπαράσταση σε οκταδικό θα πρέπει μπροστά από κάθε αριθμό να συμπεριλάβουμε το μηδέν. Όπως γνωρίζουμε οκταδικοί μπορούν να πάρουν τιμές από το 0 έως το 7. Παρομοίως κι εδώ μπορούμε να χρησιμοποιήσουμε αρνητικό και θετικό προσδιοριστή.

03736 //Είναι το δεκαδικό 2014
-0764 //Είναι το δεκαδικό -500
0143 //Είναι το δεκαδικό 99

Στους δεκαεξαδικούς αριθμούς θα πρέπει να χρησιμοποιήσουμε μπροστά από κάθε αριθμό το πρόθεμα «0x». Στο δεκαεξαδικό σύστημα χρησιμοποιούνται αριθμοί από το 0 έως το 9 και γράμματα από το A έως το F (λατινική αλφάβητος). Τα γράμματα μπορούν να είναι κεφαλαία η μικρά καθώς επίσης μπορούμε να συμπεριλάβουμε αρνητικό ή θετικό προσδιοριστή.

0x7de //Είναι το δεκαδικό 2014
-0x1f4 //Είναι το δεκαδικό -500
0x63 //Είναι το δεκαδικό 99

Για να χρησιμοποιήσουμε δυαδικούς αριθμούς θα πρέπει να προσθέσουμε στην αρχή το πρόθεμα «0b» ακολουθούμενο από αριθμούς 0 ή 1, που αντιπροσωπεύουν τον αριθμό μας. Παρόμοια με όλες τις άλλες περιπτώσεις κι εδώ μπορούμε να συμπεριλάβουμε θετικούς ή αρνητικούς προσδιοριστές.

0b11111011110 //Είναι το δεκαδικό 2014
-0b111110100 //Είναι το δεκαδικό -500
0b1100011 //Είναι το δεκαδικό 99

Τέλος υπάρχει και η επιστημονική αναπαράσταση αριθμών, όπου δεν χρειάζεται κανένα είδος πρόθεμα, αλλά μπορεί να χρησιμοποιηθεί θετικός ή αρνητικός προσδιοριστής.

2.014E3 //Είναι το δεκαδικό 2014
-5.0E2 //Είναι το δεκαδικό -500
9.9E1 //Είναι το δεκαδικό 99

Εάν για οποιοδήποτε λόγο θέλουμε να ελέγξουμε αν ένας αριθμός είναι ακέραιος μπορούμε να το κάνουμε με την εντολή «is_int()» η οποία παίρνει ως όρισμα εισόδου, μέσα στις παρενθέσεις της, έναν αριθμό και μπορεί να μας δώσει ως έξοδο «true» ή «false», ανάλογα αν ο αριθμός είναι ή δεν είναι ακέραιος.

is_int(14);

Η παραπάνω εντολή θα μας δώσει ως αποτέλεσμα «true». Με αυτόν τον τρόπο μπορούμε να χρησιμοποιήσουμε οποιοδήποτε είδος ελέγχου, όπως οι εντολές if, switch κ.α. και να ελέγξουμε την ροή του προγράμματος μας, με βάση το αν είναι ή δεν είναι ακέραιος το όρισμα της «is_int()». Εδώ θα πρέπει να σημειώσουμε ότι η εντολή αυτή λειτουργεί με όλες τις μορφές αναπαράστασης εκτός από την επιστημονική.

Παραθέτουμε ένα ολοκληρωμένο παράδειγμα χρήσης όλων των παραπάνω:

<?php
 //Δεκαδικοί
 $a = 2014;
 $b = -500;
 $c = +99;
 echo "<b>Δεκαδικοί</b> <br/>";
 echo $a."<br/>".$b."<br/>".$c."<br/>";
 echo 'Είναι ακέραιος η μεταβλητή $a : '.is_int($a).'<br/><hr/>';

 //Οκταδικοί
 $a=03736; //Είναι το δεκαδικό 2014
 $b=-0764; //Είναι το δεκαδικό -500
 $c=0143; //Είναι το δεκαδικό 99
 echo "<b>Οκταδικοί</b> <br/>";
 echo $a."<br/>".$b."<br/>".$c."<br/>";
 echo 'Είναι ακέραιος η μεταβλητή $a : '.is_int($a).'<br/><hr/>';

 //Δεκαεξαδικοί
 $a=0x7de; //Είναι το δεκαδικό 2014
 $b=-0x1f4; //Είναι το δεκαδικό -500
 $c=0x63; //Είναι το δεκαδικό 99
 echo "<b>Δεκαεξαδικοί</b> <br/>";
 echo $a."<br/>".$b."<br/>".$c."<br/>";
 echo 'Είναι ακέραιος η μεταβλητή $a : '.is_int($a).'<br/><hr/>';

 //Δυαδικοί
 $a=0b11111011110; //Είναι το δεκαδικό 2014
 $b=-0b111110100; //Είναι το δεκαδικό -500
 $c=0b1100011; //Είναι το δεκαδικό 99
 echo "<b>Δυαδικοί</b> <br/>";
 echo $a."<br/>".$b."<br/>".$c."<br/>";
 echo 'Είναι ακέραιος η μεταβλητή $a : '.is_int($a).'<br/><hr/>';

 //Επιστημονικοί
 $a=2.014E3; //Είναι το δεκαδικό 2014
 $b=-5.0E2; //Είναι το δεκαδικό -500
 $c=9.9E1; //Είναι το δεκαδικό 99
 echo "<b>Επιστημονικοί</b> <br/>";
 echo $a."<br/>".$b."<br/>".$c."<br/>";
 echo 'Είναι ακέραιος η μεταβλητή $a : '.is_int($a).'<br/><hr/>';
?>

Εδώ να σημειώσουμε ότι το «1» σημαίνει επίσης «true», ενώ το απόλυτο κενό, «false».

Πραγματικοί

Στην php εκτός από ακέραιους αριθμούς μπορούμε να χρησιμοποιήσουμε και αριθμούς με υποδιαστολή (άλλοτε γνωστοί και ως πραγματικοί αριθμοί) το εύρος των οποίων εξαρτάται από την αντίστοιχη πλατφόρμα, συνήθως όμως είναι από 1.7E-308 έως 1.7E+308 με 15 ψηφία ως μέγιστη ακρίβεια. Εάν θέλουμε παραπάνω ακρίβεια μπορούμε να χρησιμοποιήσουμε κάποιο επιπρόσθετο όπως το BC ή το GMP. Όπως με τους ακέραιους έτσι κι εδώ η php αναγνωρίζει τους πραγματικούς αριθμούς μέσα από μία πληθώρα αναπαραστάσεων, όπως:

Τον κλασικό τρόπο που χρησιμοποιούμε στην καθημερινότητα μας, μόνο που αντί για κόμμα εδώ χρησιμοποιούμε την τελεία στην θέση του (λόγω του οτι οι γλώσσες είναι φτιαγμένες με πρότυπα τα αγγλικά), επίσης μπορούμε να χρησιμοποιήσουμε θετικό ή αρνητικό προσδιοριστή:

3.14
0.0001
-30.023

Και τον επιστημονικό τρόπο όπου μπορούμε επίσης να συμπεριλάβουμε θετικό ή αρνητικό προσδιοριστή:

3.14E0 //Ο πραγματικός 3.14
1.0E-4 //Ο πραγματικός 0.0001
-3.0023E1 //Ο πραγματικός -30.023

Συνήθως σε πολλές περιπτώσεις τυχαίνει να θέλουμε να ελέγξουμε την ακεραιότητα μιας τιμής πραγματικού αριθμού μέσα σε μια συνθήκη όπως ο αριθμός «1.999999». Για να μπορέσουμε να το κάνουμε αυτό θα πρέπει να μετατρέψουμε τον αριθμό αυτό πρώτα σε έναν ακέραιο και ύστερα να συγκρίνουμε με βάση όλα τα ψηφία του ακέραιου πλέον που θα έχουμε μεταφέρει από την δεξιά πλευρά στην αριστερή της υποδιαστολής. Πιο συγκεκριμένα εάν θέλουμε να ελέγξουμε την τιμή 1.999999 θα πρέπει να την πολλαπλασιάσουμε με το 100000 έτσι ώστε δεξιά της υποδιαστολής να υπάρχουν μόνο μηδενικά, και μετά να μετατρέψουμε αυτή την τιμή σε ακέραιο με την εντολή «intval()», Παράδειγμα:

<?php 
 $a=1.999999;
 $b=1.999999;
 if(intval($a*1000000)==intval($b*1000000)){
  echo 'Η μεταβλητή $a ισούται με την μεταβλητή $b <br/>';
 }
?>

Όπως με τους ακέραιους έτσι κι εδώ μπορούμε να ελέγξουμε αν μια τιμή είναι πραγματικός αριθμός. Υπάρχουν δυο εντολές η «is_float()» και η «is_real()» οι οποίες κάνουν ακριβώς το ίδιο:

<?php
 $c=-30.023;
 $d=3.14E0; //Ο πραγματικός 3.14
 if(is_float($c)){
  echo 'Η μεταβλητή $c είναι πραγματικός αριθμός <br/>';
 }
  
 if(is_real($d)){
  echo 'Η μεταβλητή $d είναι πραγματικός αριθμός <br/>';
 }
?>

Αλφαριθμητικά

Τα αλφαριθμητικά χρησιμοποιούνται πολύ συχνά σε διαδικτυακές εφαρμογές και γι αυτό η php διαθέτει αυτή την δυνατότητα ενσωματωμένη στον πυρήνα της, δίνοντας μας έτσι την ευχέρεια να δημιουργούμε και να κάνουμε πράξεις με αλφαριθμητικά με μεγάλη ευκολία που σε άλλες γλώσσες αυτό δεν υποστηρίζεται.

Ένα αλφαριθμητικό είναι μια σειρά από χαρακτήρες είτε του ελληνικού αλφαβήτου είτε του λατινικού (είτε μίξη και των δύο), αριθμών και ειδικών συμβόλων, μπορούμε δηλαδή να γράψουμε ένα όνομα, μια πρόταση ή και ολόκληρο κείμενο μέσα σε ένα αλφαριθμητικό. Ο τρόπος με τον οποίο χρησιμοποιούμε τα αλφαριθμητικά είναι να γράψουμε αυτό που θέλουμε μέσα σε μονά ή διπλά αγγλικά εισαγωγικά (' ή "), για παράδειγμα:

'Τι είχες Γιάννη;'
"Τι είχα πάντα;"

Η διαφορά τους βρίσκεται στο ότι στα μονά εισαγωγικά δεν μπορούμε να χρησιμοποιήσουμε ειδικούς χαρακτήρες αλφαριθμητικών (όπως αλλαγή γραμμής κτλ) ή μεταβλητές μέσα σε αυτά, αλλά μόνο απλό κείμενο. Αντίθετα στα διπλά εισαγωγικά εάν συμπεριλάβουμε το όνομα μιας μεταβλητής μέσα σε ένα αλφαριθμητικό τότε χρησιμοποιείται η τιμή της μεταβλητής αυτής ως αντικατάσταση, όπου βρεθεί στο αλφαριθμητικό, παράδειγμα:

<?php
 $onoma = "Γιάννη";
 echo 'τι είχες $onoma <br/>';
 echo "τι είχες $onoma <br/>";
?>

Οι ειδικοί χαρακτήρες που υποστηρίζονται μέσα στα διπλά εισαγωγικά είναι όλα αυτά που περιγράφονται στον παρακάτω πίνακα:

Χαρακτήρας Επεξήγηση
\" Διπλά εισαγωγικά
\n Νέα γραμμή
\r
\t Tab
\\ Οπίσθια μεσοκάθετος
\$ Δολάριο
\{ Αριστερή αγκύλη
\} Δεξιά αγκύλη
\[ Αριστερό άγκυστρο
\] Δεξί άγκυστρο
Από \0 έως \777 Ένας χαρακτήρας ASCII σε οκταδική μορφή
Από \x0 έως \xff Ένας χαρακτήρας ASCII σε δεκαεξαδική μορφή

Στα μονά εισαγωγικά αναγνωρίζονται οι διπλές μεσοκάθετοι ως μοναδική μεσοκάθετος και το «\'» ως μονό εισαγωγικό. 

<?php
 $diadromi = 'C:\\WINDOWS\\SYSTEM ';
 $frasi = 'Τι \'χες πάντα';
?>

Για να ελέγξουμε αν μια μεταβλητή είναι αλφαριθμητικό χρησιμοποιούμε την εντολή «is_string()» όπου ως όρισμα εισόδου μέσα στις παρενθέσεις της παίρνει μια μεταβλητή προς έλεγχο και επιστρέφει true ή false.

<?php
 $a = "Αλφαριθμητικό";
 if(is_string($a)){
   echo 'Η μεταβλητή $a είναι αλφαριθμητικό';
 }
?>

Για να συγκρίνουμε δυο αλφαριθμητικά μπορούμε απλά να χρησιμοποιήσουμε τον αντίστοιχο τελεστή του διπλού ίσον «==», για παράδειγμα:

<?php
 $a = "Γειά σου";
 $b = "Γειά σου";
 if($a==$b){
  echo '$a == $b';
 }
?>

Όλα τα παραπάνω παραδείγματα σε ένα αρχείο:

<?php
 //'Τι είχες Γιάννη;'
 //"Τι είχα πάντα;"
 
 $onoma = "Γιάννη";
 echo 'τι είχες $onoma <br/>';
 echo "τι είχες $onoma <br/>";

 echo '<hr/>';
 
 $diadromi = 'C:\\WINDOWS\\SYSTEM ';
 $frasi = 'Τι \'χες πάντα';
 
 echo $diadromi."<br/>".$frasi;
 
 echo "<hr/>";
 
 $a = "Αλφαριθμητικό";
 if(is_string($a)){
  echo 'Η μεταβλητή $a ειναι αλφαριθμητικό';
 }
 
 echo '<br/>';
 echo '<hr/>';
 $a = "Γειά σου";
 $b = "Γειά σου";
 if($a==$b){
  echo '$a == $b';
 }
?>

Boolean

Μια μεταβλητή Boolean είναι μια μεταβλητή με περιεχόμενο το οποίο μπορεί να αναπαραστήσει αν κάτι είναι αληθές ή ψευδές. Αν για παράδειγμα θέλουμε να ρωτήσουμε κάποιον «βρέχει σήμερα;» και η απάντηση είναι «ναι» τότε στις γλώσσες προγραμματισμού η απάντηση που πήραμε είναι μια αληθής Boolean τιμή όπου μας απαντά σε ένα ερώτημα με ναι ή όχι. Συνήθως στις γλώσσες προγραμματισμού χρησιμοποιούνται οι τιμές «true» και «false» ως ναι και όχι αντίστοιχα. Στην php όμως το εύρος των τιμών αυξάνεται, και μαζί με αυτό και οι δυνατότητες που μας παρέχουν.

Οι παρακάτω τιμές στην php προσδιορίζουν το «μη αληθές»:

  • Η λέξη κλειδί false,
  • Ο ακέραιος αριθμός 0,
  • Ο πραγματικός 0.0,
  • Ένα κενό αλφαριθμητικό "" ή ένα αλφαριθμητικό "0",
  • Ένας κενός πίνακας με κανένα στοιχείο,
  • Ένα αντικείμενο χωρίς τιμές ή λειτουργίες,
  • Η τιμή NULL.

Μια τιμή η οποία δεν έχει κανέναν από τα παραπάνω περιεχόμενα τότε δεν θεωρείται false, και είναι true. Η php προσφέρει ωστόσο τις λέξεις κλειδιά «true» και «false» για ευκολία στην ανάγνωση αλλά μπορούν να χρησιμοποιηθούν και όλες οι παραπάνω τιμές.

<?php 
 $a = 5; // true
 $b = true; // true
 $c = ""; // false
 $d = false; //false
?>

Για να ελέγξουμε αν μια μεταβλητή είναι boolean αρκεί να χρησιμοποιήσουμε την εντολή «is_bool()» με μόνο όρισμα εισόδου την μεταβλητή που θέλουμε να ελέγξουμε.

<?php 
 $a = 5; // true
 if(is_bool($a)){
  echo "ειναι boolean!";
 }else{
  echo "Δεν ειναι boolean"; 
 }
?>

NULL

Υπάρχει μόνο ένα είδος κενής τιμής στην php και αυτή είναι η NULL. Το NULL το οποίο είναι case-insensitive (μπορεί να γραφτεί δηλαδή και με μικρά αλλά και με κεφαλαία και σημαίνει ακριβώς το ίδιο), αναπαριστά μια τιμή σε μια μεταβλητή της οποίας μεταβλητής δεν έχει αποδοθεί καμία τιμή. Όταν ορίζουμε μια μεταβλητή με αυτή την τιμή σημαίνει πως η μεταβλητή δεν έχει απολύτως τίποτα μέσα της.

$a = "Γεια σας!"; // Έχει τιμή
$a = null; //τώρα είναι κενή
$a = NuLl; //επίσης κενή
$a = NULL; // επίσης κενή

Μπορούμε να ελέγξουμε αν μια μεταβλητή είναι κενή με την εντολή is_null() η οποία δέχεται ως είσοδο μια μεταβλητή και επιστρέφει true αν η μεταβλητή είναι κενή και false αν δεν είναι.

<?php 
 $a = null;
 if(is_null($a)){
  echo "Είναι κενή!";
 }
?>