Si print_r te esta diciendo que $resultado es un objeto, porque entonces tratas de llamar a un metodo como array?
En lugar de hacer:
Código PHP:
$resultado[0]->MetodoDato();
Deberias de hacer:
Código PHP:
$resultado->MetodoDato();
Solo en el caso que tu objeto $resultado implementara ArrayAccess y que te regresara un objeto entonces si podrias hacerlo.
Tambien te pido si posteas codigo real ya que asi con suposiciones es dificil encontrar el error ya que como tu dices todo deberia de funcionar inclusive si testeas algo asi funciona:
Código PHP:
class Prueba3 {
public function unMetodo() {
echo "Soy unMetodo() de Prueba3";
}
}
class Prueba2 {
public function obtenerDato() {
return new Prueba3();
}
}
class Prueba {
public $variable;
public function __construct() {
$this->variable = new Prueba2();
}
}
$prueba = new Prueba();
$resultado = $prueba->variable->obtenerDato();
$resultado->unMetodo();