$thisがオブジェクトでないときに、オブジェクトを返す方法で自己解決しました。
(果たして解決しているどうかも少しなぞですが)

if(!is_object($this)){

    $obj = new Hoge();

}else{

    $obj = $this;
    unset($this);

}

return $obj;