bucle for: el bucle for es un bucle iterativo que repite un cierto conjunto de código hasta que se alcanza una condición específica. Se usa sistemáticamente para ejecutar un conjunto de código por un número específico de veces, aquí el número de veces denota la variable del iterador.
Sintaxis:
for( initialization; condition; increment/decrement ) { // Set of Code to be iterated and executed }
Cada uno de los parámetros del bucle for tiene funcionalidades únicas que se explican a continuación para una mejor comprensión:
- inicialización: se utiliza para inicializar las variables del iterador y se ejecuta en un momento sin ejecutar la declaración de condición durante el inicio de la condición de bucle que es la primera ejecución del conjunto de código en el bucle.
- condición: al comienzo de cada iteración, se ejecuta la declaración de condición y si la condición devuelve un valor verdadero, el ciclo continúa y se ejecutan las declaraciones anidadas en el conjunto de código. Si la condición se evalúa como falsa, la ejecución del ciclo se interrumpe en ese punto del código.
- incremento: Incrementa el contador del ciclo con un nuevo valor de incremento que será evaluado para la declaración de condición. Se ejecuta obligatoriamente al final de cada iteración sin interrupción.
Ejemplo: Este ejemplo usa un ciclo for que comienza con $j = 1. El ciclo continuará hasta que $j sea menor o igual a 5. La variable $j aumentará en 1 cada vez que se ejecute el ciclo.
php
<?php // Loop starts from here for($j = 1; $j <= 5; $j++) { echo $j . " GeeksforGeeks \n"; } ?>
1 GeeksforGeeks 2 GeeksforGeeks 3 GeeksforGeeks 4 GeeksforGeeks 5 GeeksforGeeks
bucle foreach: el propósito del bucle foreach es definir el uso y iterar específicamente sobre los elementos de la estructura de datos de la array.
Sintaxis:
foreach( $array as $element ) { // PHP Code to be executed }
foreach( $array as $key => $element) { // PHP Code to be executed }
Los siguientes ejemplos ilustran el uso del bucle foreach.
Ejemplo 1:
php
<?php $students = array( "Jimmy", "Jonny", "Jacky" ); // Loop through students array foreach( $students as $element ) { echo $element . "<br>"; } ?>
Jimmy Jonny Jacky
Ejemplo 2:
php
<?php $employee = array( "name" => "Robert", "email" => "robert112233@mail.com", "age" => 18, "gender" => "male" ); // Loop through employee array foreach($employee as $key => $element) { echo $key . ": " . $element . "<br>"; } ?>
name: Robert email: robert112233@mail.com age: 18 gender: male
Comparación de rendimiento en bucle for y foreach:
- Se considera que el bucle for ejecuta abiertamente la iteración, mientras que el bucle foreach oculta la iteración y la simplifica visiblemente.
- Se considera que el bucle foreach tiene un rendimiento mucho mejor que el del bucle for genérico.
- Aunque el ciclo foreach itera sobre una array de elementos, la ejecución se simplifica y finaliza el ciclo en menos tiempo comparativamente.
- El ciclo foreach asigna memoria temporal para las iteraciones de índice, lo que hace que el rendimiento del sistema sea redundante en términos de asignación de memoria.
Ejemplo:
php
<?php // PHP program to compare the performance // of for and foreach loop // Declarations $units = array(); // An array of 100 units with random string values for($i = 0; $i <= 100; $i++) { $units[] = (string)rand(11111, 99999); } $startingTime = microtime(true); // for loop performance evaluation $size = count($units); for($i = 0; $i < $size; $i++) { } $endingTime = microtime(true); $forlooptime = $endingTime - $startingTime; $startingTime = microtime(true); // foreach loop performance evaluation foreach($units as $unit) { } $endingTime = microtime(true); $foreachlooptime = $endingTime - $startingTime; echo "for loop evaluates to: " . number_format($forlooptime * 1000, 6); echo "\nforeach loop evaluates to: " . number_format($foreachlooptime * 1000, 6); ?>
for loop evaluates to: 0.002861 foreach loop evaluates to: 0.002861
Publicación traducida automáticamente
Artículo escrito por MerlynShelley y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA