Cómo arreglar mi código PHP

Todas las respuestas a continuación son correctas. Mueve el eco afuera. Aquí hay un poco más porque para alguien como yo, encontrar la respuesta no es suficiente. Me gusta saber el “por qué”.

PHP funciona en sucesión, a menos que haga cosas como procesos de fork. Si comienza un proceso y escribe uno después, el valor del primero se completa antes de pasar al siguiente. Esta es una gran ventaja si necesita garantizar la sucesión y simplifica la necesidad de “promesa” antes de continuar.

Todavía; Esta es también la razón por la cual los sistemas CMS como WordPress comienzan a retrasarse en la carga y muchos otros aspectos. No me malinterpretes, WordPress es genial; para sitios básicos que no necesitan mucha atención o ganan poca interacción. Tiene una gran cuota de mercado de desarrollo y es un jugador importante en la industria, pero su gran adversario es el tiempo de carga. Otros sistemas de cms que dependen en gran medida de PHP para la compilación a la salida tienen el mismo problema. No me malinterpreten, lo juro por PHP y son habilidades y simplicidad; sin embargo, a lo largo de los años, he aprendido a descargar la compilación lejos de php tanto como sea posible y usar PHP principalmente para obtener los datos para usarlos de otra manera.

Todo eso dicho; Es por eso que el eco después de la instrucción while te da el resultado final. Donde el eco adentro te dará un resultado en cada cuenta.

Hola

Está imprimiendo $ p cada vez que se ejecuta el bucle

Imprimir $ p después de completar el ciclo

$ n = 5;

$ p = 1;

hacer {

$ p * = $ n;

$ n–;

}

while ($ n> 1);

echo $ p “
“;

?>

Estás diciendo en tu código:

haga el siguiente cálculo mientras $ n es mayor que 1. Y la acción está repitiendo cada paso.

En cambio, solo tenía que hacer eco de la salida después de la acción.

while ($ n> 1);
echo $ p;

Esto se debe a que genera $ p en su ciclo while cada vez. Salida $ p solo DESPUÉS del ciclo while. Además, usaría un bucle for, así:

$ p = 1;
para ($ n = 1; $ n <= 5; $ n ++) {
$ p * = $ n;
}

echo $ p;

Eso es porque imprime su variable $ p cada vez que pasa por el ciclo.

$ n = 5;
$ p = 1;
if ($ n> 1) {
hacer{
$ p * = $ n
$ n–
} while ($ n> 1);
}más{
echo “$ p

}

Haría algo así, ahora verifico si $ n está listo para el ciclo. Cuando $ n alcanza “<= 1", su resultado está listo para imprimirse.
Comenta si necesitas algo más.

Imprimir eco del lado del bucle

prueba con este fragmento una vez

Ejemplo 1:

para ($ x = $ n; $ x> = 1; $ x–)
{
$ p = $ p * $ x;
}
echo “El factorial de $ n es $ p”;

Ejemplo 2: prueba con este también

función findMyfact ($ n)
{
si ($ n <= 1)
{
retorno 1;
}
más
{
devuelve $ n * findMyfact ($ n – 1);
}
}

echo “Factorial de 6 es” .findMyfact (6);
?>

$ n–;
}
while ($ n> 1);
echo $ p, “
“;
?>

Simplemente coloque el “echo $ p” fuera del ciclo do-while.

}

while ($ n> 1);

echo $ p, “
“;

?>

Cada línea de programa dentro del ciclo do-while, bueno, se repetirá cada vez que la condición while sea verdadera.

Puede encontrar respuestas como estas y muchas otras en foros de preguntas y respuestas ya grandes como Stack Overflow.

¡Sigan Codin!

$ n = 5;
$ factorial = 1;

para ($ i = $ n; $ i> = 1; $ i–)
{
$ factorial = $ factorial * $ i;
}
echo “El factorial de $ n es $ factorial”;

?>

Su código funciona perfecto, solo necesita una ligera modificación …

Corte la línea número 7 e imprímala después del final de la instrucción while

Hecho !!