Petite précision qui a son importance en cas de remaniement, l'appel à foo::getPrevious() effectue une requête de type restriction éventuellement gourmande en ressource sur une base de données.

<?php

class foo
{
...
public function doSomethingOnPreviousIfExists()
{
$previous = $this->getPrevious();

if ($previous !== null)
{
$previous->doSomething();
}

return $this;
}
...
}

?>

À vos marques ? Prêt ? Partez !