Az egyes objektumok között gyakori a tartalmazási vagy hasonló kapcsolat. Pl. a fal téglákból áll:

<?php
class brick {
  var
$sample_attribute;
}
?>

<?php
class wall {
  var
$brick1;
  var
$brick2;
  var
$brick3;
  var
$brick4;
 
// Konstruktor:
 
function wall() {
   
$this->brick1 = new brick();
   
$this->brick2 = new brick();
   
$this->brick3 = new brick();
   
$this->brick4 = new brick();
  }
}
?>

A tartalmazási kapcsolat onnan is látszik, hogy a fal objektum létrejöttekor automatikusan létrejönnek a tartalmazott téglák is. Akár egyből használhatjuk is őket:

<?php
$myWall
= new wall();
echo
$myWall->brick1->sample_attribute;
echo
$myWall->brick2->sample_attribute;
echo
$myWall->brick3->sample_attribute;
echo
$myWall->brick4->sample_attribute;
?>

Nézzünk egy másik példát. Az autó objektumhoz szükséges a vezető, nélküle nem jöhet létre:

<?php
class person {
 
// ...
}
class
car {
  var
$driver;
 
// Konstruktor:
 
function car(&$driver) {
   
$this->driver = (object) $driver;
  }
}
// A person példányostása
$me = new person();
// car létrehozása a vezető megadásával
$myCar = new car($me);
?>

Érdemes megfigyelni a konstruktor referencia szerinti paraméterátadását. Így a car konstruktor nem egy másolatot kap a vezetőből, hanem a referenciáját (álnevét).