¿A qué tipo de estructuras te refieres?
function factorial($n){
return $n > 15 || $n < 0 ? false : ($n==1 ? 1 : $n*factorial($n-1));
}
$fact = factorial(5);
echo $fact ? $fact : 'Error';
no, esa sigue siendo una de las soluciones lentas, he limitado el número por el hecho de que php no puede calcular factoriales enormes xD
porcierto, el script asume que es del 1 al 15, no hace falta que pongas eso de error, lo único que interesa es el Procedimiento