Vous ne pouvez pas faire ce que vous demandez; mais vous pouvez "tricher", en utilisant le fait qu'en PHP, vous pouvez avoir une fonction qui a le même nom qu'une classe; ces noms ne seront pas en conflit.
Donc, si vous avez déclaré une classe comme celle-ci:
class Test {
public function __construct($param) {
$this->_var = $param;
}
public function myMethod() {
return $this->_var * 2;
}
protected $_var;
}
Vous pouvez ensuite déclarer une fonction qui renvoie une instance de cette classe - et qui porte exactement le même nom que la classe:
function Test($param) {
return new Test($param);
}
Et maintenant, il devient possible d'utiliser un one-liner, comme vous l'avez demandé - la seule chose est que vous appelez la fonction, donc n'utilisez pas new:
$a = Test(10)->myMethod();
var_dump($a);
Et ça marche: ici, je reçois:
int 20
comme sortie.
Et, mieux, vous pouvez mettre du phpdoc sur votre fonction:
/**
* @return Test
*/
function Test($param) {
return new Test($param);
}
De cette façon, vous aurez même des indices dans votre IDE - au moins, avec Eclipse PDT 2.x; voir le screeshot:

Edit 2010-11-30: Juste pour information, une nouvelle RFC a été soumise, il y a quelques jours, qui propose d'ajouter cette fonctionnalité à l'une des futures versions de PHP.
Voir: Request for Comments: Instance et méthode call / property access
Donc, peut-être que faire des choses comme celles-ci sera possible dans PHP 5.4 ou dans une autre version future:
(new foo())->bar()
(new $foo())->bar
(new $bar->y)->x
(new foo)[0]