Εφόσον δημιουργηθούν οι κλάσεις θα πρέπει με κάποιο τρόπο να «πούμε» στο script ποια αντικείμενα θα δημιουργηθούν, και για τα αντικείμενα αυτά, ποίες κλάσεις θα χρησιμοποιηθούν . Για να δημιουργηθεί ένα αντικείμενο μέσα σε μια κλάση χρησιμοποιείται ένας κατασκευαστής. Αντίστοιχα όταν πλέον ένα αντικείμενο παύει να χρησιμοποιείται, παύει αυτομάτως και να υφίστανται Στο τέλος της ύπαρξης τους ένας καταστροφέας αναλαμβάνει δράση.

Κατασκευαστές

Ο κατασκευαστής αναλαμβάνει να εισάγει τιμές στις ιδιότητες της κλάσης (δηλαδή τις μεταβλητές της), δίνοντας τους έτσι τα μοναδικά χαρακτηριστικά ενός αντικειμένου. Την στιγμή δηλαδή που δημιουργείται το αντικείμενο τότε καλείται ο κατασκευαστής της κλάσης και αυτό που κάνει είναι να αντιστοιχίζει τιμές στις μεταβλητές της.

Ένας κατασκευαστής στην php-v5 δηλώνεται με την δεσμευμένη λέξη «__construct», ενώ στις παλαιότερες εκδόσεις php ένας κατασκευαστής αρκούσε να έχει το ίδιο όνομα με την κλάση. Η σύνταξη του έχει ως εξής:

function __construct(παράμετροι){
 ...εντολές...
}

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

  1. Πρέπει να έχει την λέξη «function» πριν από το «__construct»,
  2. Παίρνει παραμέτρους μέσα στην παρένθεση η οποία ακολουθείται του «__construct»,
  3. Όλες οι εντολές του πλαισιώνονται από αγκύλες.
  4. Δεν έχει «return».

Ας δούμε ένα παράδειγμα κατασκευαστή:

<?php
 class foititis{
  private $onoma="";
  function __construct($onom="Χωρίς όνομα"){
   $this->onoma = $onom;
   echo "Ο κατασκευαστής έχει παράμετρο :".$onom;
  }
 }
 
 $a1 = new foititis("Γιάννης");
?>

Απο τον παραπάνω τρόπο σύνταξης συμπεραίνουμε οτι:

  • πρώτα συντάσσεται η κλάση και ύστερα χρησιμοποιείται,
  • το «foititis» είναι η κλάση που αντιπροσωπεύει φοιτητές,
  • το «$onoma» είναι μια ιδιότητα της κλάσης που αντιπροσωπεύει το όνομα του κάθε φοιτητή,
  • το «__construct» είναι ο κατασκευαστής του φοιτητή ο οποίος έχει μία παράμετρο την «$onom», στην οποία αν δεν δοθεί κάποια τιμή γι αυτήν κατά την διάρκεια που καλέσουμε τον κατασκευαστή θα δοθεί η προεπιλεγμένη τιμή «Χωρίς όνομα».
  • το «$this» είναι μια δεσμευμένη εντολή που χρησιμοποιείται για να έχουμε πρόσβαση μέσα από την κλάση στις ιδιότητες και της λειτουργίες της. Στην συγκεκριμένη γραμμή ζητάμε να δοθεί η τιμή της παραμέτρου «$onom» του κατασκευαστή στην ιδιότητα της κλάσης «foititis», «$onoma».
  • η γραμμή «$a1 = new foititis("Γιάννης");» καλείται στιγμιότυπο του αντικειμένου, και είναι η στιγμή που το script θα καλέσει τον κατασκευαστή από την κλάση «foititis» και θα δημιουργήσει-επιστρέψει το αντικείμενο.

Καταστροφείς

Το αντίθετο από αυτό που είναι ένας κατασκευαστής, είναι ο καταστροφέας. Οι μέθοδοι καταστροφής είναι νέες στην php-v5, και επιτρέπουν την εκτέλεση κάποιο μέρους κώδικα πριν καταστραφεί ολόκληρη η κλάση. Όταν οι αναφορές προς μια κλάση (δηλαδή όλα της τα αντικείμενα) έχουν ακυρωθεί ή φύγουν από το πεδίο δράσης, τότε αυτόματα καλείται ο καταστροφέας της κλάσης και εκτελείται το μέρος του κώδικα που υπάρχει μέσα σε αυτόν. Χρησιμοποιείται η δεσμευμένη λέξη «__destruct» ως μέθοδος παρόμοια με τον κατασκευαστή.

<?php
 class foititis{
  private $onoma="";
  function __construct($onom="Χωρίς όνομα"){
   $this->onoma = $onom;
   echo "Ο κατασκευαστής έχει παράμετρο :".$onom;
  }
  function __destruct(){
    echo "<br /> Η κλάση καταστράφηκε!";
  }
 }
 
 $a1 = new foititis("Γιάννης");
?>

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