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

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

Η στιγμή που θέλουμε να δημιουργήσουμε το αντικείμενο μας στον κώδικα γίνεται με την εντολή «new». Όταν θέλουμε να χρησιμοποιήσουμε μεταβλητές ή λειτουργίες της κλάσης από ΤΗΝ ΙΔΙΑ την κλάση χρησιμοποιούμε την δεσμευμένη λέξη «$this» ακολουθουμένη με τον τελεστή «->». Αν θέλουμε για παράδειγμα να χρησιμοποιήσουμε το όνομα του φοιτητή μέσα από την ίδια την κλάση σε κάποια συνάρτηση το φωνάζουμε ως «$this->onoma;»

Ας δούμε την χρήση των εσωτερικών μεταβλητών ενός αντικειμένου μέσα από ένα παράδειγμα.

<?php
 class student{
  private $name="";
  function __construct($n1="Χωρίς όνομα"){
   $this->name = $n1;
  }
  
  function get_name(){
   return $this->name;
  }
 }
 
 $a1 = new student("Γιάννης");
 echo "Όνομα: ".$a1->get_name();
?>

Αντικείμενα μέσα σε αντικείμενα

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

<?php
 class wheel{
  public $perimeter;
  public $type;
  public $create_date;
  
  function __construct($p1,$t1,$c1){
    $this->perimeter=$p1;
    $this->type=$t1;
    $this->create_date=$c1;
  }
 }
 
 class car{
  public $wheels;
  public $doors;
  public $model;
  public $price;
  function __construct($w1,$d1,$m1,$p1){
   $this->wheels = $w1;
   $this->doors = $d1;
   $this->model = $m1;
   $this->price = $p1;
  }
}
 $roda;
 for($i=0;$i<4;$i++){
  $roda[$i] = new wheel("3.14","Ακτινωτό","2014-06-11");
 }
 
 $a = new car($roda,5,"Fiat 2008",1000.52);
 
 echo "<pre>";
 var_dump($a->wheels);
 echo "</pre>";
?>

Όπως παρατηρούμε με το παραπάνω βλέπουμε πως το αντικείμενο «car» μέσα στις ιδιότητες του έχει τέσσερα αντικείμενα «wheel». Γενικώς στον προγραμματισμό ισχύει πως όσο περισσότερο διασπάμε ένα πρόβλημα σε μικρότερα υπό-προβλήματα, τότε τόσο πιο εύκολα επιλύσιμο είναι συνολικά το πρόβλημα αυτό. Διαχωρίζοντας έτσι ένα αυτοκίνητο σε επιμέρους αντικείμενα όπως οι ρόδες, οι πόρτες κτλ. αυτό μας βοηθά έτσι ώστε μια αλλαγή που επηρεάζει μόνο ένα από αυτά π.χ. τις ρόδες, τότε να μπορεί να γίνει εύκολα και χωρίς μεγάλη δυσκολία.

Πρόσβαση σε ιδιότητες private

Είναι πιθανό να έχουμε private μεταβλητές μέσα σε μια κλάση, και να έχουμε πρόσβαση σε αυτές έξω από την κλάση μέσω μεθόδων. Ας δούμε πως γίνεται αυτό:

<?php
 class product{
  private $name;
  private $price;
  
  function __construct($n1,$p1){
    $this->name=$n1;
    $this->type=$p1;
  }
  
  function get($name){
   return $this->$name;
  }
  
  function change($name,$value){
   $this->$name=$value;
  }
 }
 
 $a = new product("Μπανάνες",3.2);
 
 echo $a->get("name")."<br/>";
 $a->change("name","Μήλα");
 echo $a->get("name");
?>

Όπως βλέπουμε στο παραπάνω κώδικα, η μέθοδος «get» παίρνει ένα όρισμα, το όνομα που θέλουμε να χρησιμοποιήσουμε. Όπως είναι γνωστό όλες οι μέθοδοι μιας κλάσης έχουν δικαίωμα πρόσβασης στις private μεταβλητές τις. Eκμεταλλευόμαστε αυτό το πλεονέκτημα στην ανάκτηση μιας ιδιότητας της κλάσης που δεν μπορούμε άμεσα να προσπελάσουμε.

Παρομοίως η μέθοδος «change» χρειάζεται δυο παραμέτρους. Το όνομα της ιδιότητας και μια τιμή γι’ αυτήν. Ζητώντας με τον ίδιο τρόπο την μεταβλητή, μέσα από την κλάση, μας δίνεται η δυνατότητα να αλλάξουμε την τιμή της χωρίς να την προσπελάσουμε άμεσα, αλλά μέσω της μεθόδου αυτής.

Το αντικείμενο αρχικά είχε ως ιδιότητα ονόματος «Μπανάνες» και ύστερα αυτό γίνεται «Μήλα» μέσω της χρήσης των μεθόδων αυτών.