Me refiero a que un set() siempre debe de establecer un valor o mínimo aceptar un valor:
Código PHP:
Ver originalpublic function setFoo($Foo = null) {
if ($Foo == null) {
$Foo= new DefaultFoo();
}
$this->foo = $Foo;
}
Lo otro pues es lo mismo que te digo, lo más optimo depende del dato que quieras pasar, si es un objeto siempre es más rápido porque son punteros (números) los que se pasan y no todo el objeto entero.