Tutorial PHP

PHP INICIO Introducción PHP Instalación de PHP Sintaxis PHP Comentarios PHP Variables PHP PHP Echo / Imprimir Tipos de datos PHP Cadenas PHP Números PHP Matemáticas PHP Constantes PHP Operadores PHP PHP Si... Más... Elseif Cambio de PHP Bucles de PHP Funciones PHP Matrices de PHP Superglobales de PHP PHP expresión regular

Formularios PHP

Manejo de formularios PHP Validación de formulario PHP Formulario PHP requerido Formulario PHP URL/Correo electrónico Formulario PHP completo

PHP Avanzado

Fecha y hora PHP PHP Incluir Manejo de archivos PHP Archivo PHP Abrir/Leer Archivo PHP Crear/Escribir Carga de archivos PHP Cookies PHP Sesiones PHP Filtros PHP Filtros PHP avanzados Funciones de devolución de llamada de PHP PHPJSON Excepciones de PHP

POO de PHP

PHP ¿Qué es la programación orientada a objetos? Clases PHP/Objetos Constructor PHP Destructor PHP Modificadores de acceso de PHP Herencia de PHP Constantes PHP Clases abstractas de PHP Interfaces PHP Características de PHP Métodos estáticos de PHP Propiedades estáticas de PHP Espacios de nombres de PHP Iterables de PHP

Base de datos MySQL

Base de datos MySQL Conexión MySQL MySQL Crear base de datos Crear tabla MySQL MySQL Insertar datos MySQL Obtener la última identificación MySQL Insertar Múltiples MySQL preparado Datos seleccionados de MySQL mysql donde MySQL Ordenar por MySQL Eliminar datos Datos de actualización de MySQL Límite de datos de MySQL

PHPXML _

Analizadores PHP XML Analizador PHP SimpleXML PHP SimpleXML - Obtener PHP XML Expatriados PHP XML DOM

PHP -AJAX

Introducción a AJAX AJAXPHP Base de datos AJAX XML AJAX Búsqueda en vivo de AJAX Encuesta AJAX

Ejemplos de PHP

Ejemplos de PHP Compilador PHP Cuestionario de PHP Ejercicios PHP Certificado PHP

Referencia PHP

Descripción general de PHP Matriz de PHP Calendario PHP Fecha PHP Directorio PHP Error PHP Excepción PHP Sistema de archivos PHP Filtro PHP PHPFTP PHPJSON Palabras clave PHP PHP Libxml Correo PHP Matemáticas PHP PHP misceláneo PHP MySQLi Red PHP Control de salida de PHP PHP expresión regular PHP SimpleXML flujo PHP Cadena PHP Manejo de variables de PHP Analizador PHP XML código postal de PHP Zonas horarias de PHP

Iterables de PHP


PHP - ¿Qué es un iterable?

Un iterable es cualquier valor que se puede recorrer con un foreach()bucle.

El iterablepseudotipo se introdujo en PHP 7.1 y se puede usar como un tipo de datos para argumentos de funciones y valores de retorno de funciones.


PHP - Uso de iterables

La iterablepalabra clave se puede utilizar como tipo de datos de un argumento de función o como tipo de retorno de una función:

Ejemplo

Use un argumento de función iterable:

<?php
function printIterable(iterable $myIterable) {
  foreach($myIterable as $item) {
    echo $item;
  }
}

$arr = ["a", "b", "c"];
printIterable($arr);
?>

Ejemplo

Devuelve un iterable:

<?php
function getIterable():iterable {
  return ["a", "b", "c"];
}

$myIterable = getIterable();
foreach($myIterable as $item) {
  echo $item;
}
?>


PHP - Creación de iterables

arreglos

Todos los arreglos son iterables, por lo que cualquier arreglo se puede usar como argumento de una función que requiere un iterable.

iteradores

Cualquier objeto que implemente la Iteratorinterfaz se puede usar como argumento de una función que requiere un iterable.

Un iterador contiene una lista de elementos y proporciona métodos para recorrerlos. Mantiene un puntero a uno de los elementos de la lista. Cada elemento de la lista debe tener una clave que se puede utilizar para encontrar el elemento.

Un iterador debe tener estos métodos:

  • current()- Devuelve el elemento al que apunta actualmente el puntero. Puede ser cualquier tipo de dato
  • key()Devuelve la clave asociada con el elemento actual en la lista. Solo puede ser un número entero, flotante, booleano o cadena
  • next() Mueve el puntero al siguiente elemento de la lista.
  • rewind() Mueve el puntero al primer elemento de la lista.
  • valid()Si el puntero interno no apunta a ningún elemento (por ejemplo, si se llamó a next() al final de la lista), debería devolver falso. Devuelve verdadero en cualquier otro caso.

Ejemplo

Implemente la interfaz Iterator y utilícela como iterable:

<?php
// Create an Iterator
class MyIterator implements Iterator {
  private $items = [];
  private $pointer = 0;

  public function __construct($items) {
    // array_values() makes sure that the keys are numbers
    $this->items = array_values($items);
  }

  public function current() {
    return $this->items[$this->pointer];
  }

  public function key() {
    return $this->pointer;
  }

  public function next() {
    $this->pointer++;
  }

  public function rewind() {
    $this->pointer = 0;
  }

  public function valid() {
    // count() indicates how many items are in the list
    return $this->pointer < count($this->items);
  }
}

// A function that uses iterables
function printIterable(iterable $myIterable) {
  foreach($myIterable as $item) {
    echo $item;
  }
}

// Use the iterator as an iterable
$iterator = new MyIterator(["a", "b", "c"]);
printIterable($iterator);
?>