Bah non. Ce n'est pas un if-else (il n'y a pas le mot-clé
else 
), donc je ne voyais pas ta remarque comme appliquable à ce code. Il y a un seul if-else dans le code:
if (array_reduce (array_keys ($input), $ascend, 0) !== count ($input))
{
foreach ($input as $key => $value)
$out .= ($out !== '' ? ',' : '') . self::export ($key) . '=>' . self::export ($value);
}
else
{
foreach ($input as $value)
$out .= ($out !== '' ? ',' : '') . self::export ($value);
}
C'est à celui-là que je faisais référence (et je croyais que tu y faisais référence aussi).
Et le reste de mon message, en particulier "Et puis personnellement, je trouve plus logique de mettre le code le plus long avant le
else.", montre clairement que je ne te donne pas raison.

Cela dit, avec un
return, à la limite, tester les conditions avec le code le plus simple avant, avec une ligne
if (!is_array ($input)) return var_export ($input, true);
pour s'en débarasser et éviter de devoir indenter tout le reste du code, peut se justifier. Mais pas avec un
else.

(Et puis je fais ça surtout pour les cas d'erreur ou du moins moins courants. Ici, ça a plutôt l'air d'être un cas par défaut, qui logiquement a sa place à la fin.)