Operador de propagación de PHP

Sheeraz Gul 20 junio 2023
  1. Operador de propagación de PHP
  2. Use el operador de propagación varias veces en PHP
  3. Use el operador de propagación con un valor de retorno de una función en PHP
  4. Use el operador de propagación con un objeto transitable en PHP
  5. Use el operador de propagación con un generador en PHP
Operador de propagación de PHP

Este tutorial demuestra el operador de propagación en PHP.

Operador de propagación de PHP

El operador de propagación se introdujo en PHP 7.4, que se usa para la expresión de matriz. El operador de propagación se denota con tres puntos ....

El operador de propagación distribuye los miembros de una matriz, lo que significa que si colocamos estos tres puntos en el prefijo de una matriz, distribuirá los valores en el lugar.

Por ejemplo:

<?php
$names = ["Jack", "John"];

$all_names = ["Mike", "Logan", "Shawn", ...$names]; // Use of the spread operator

print_r($all_names);
?>

El código anterior utilizará el operador de propagación para colocar los valores de la matriz $names en la matriz $all_names.

Ver salida:

Array (
    [0] => Mike
	[1] => Logan
	[2] => Shawn
	[3] => Jack
	[4] => John )

El método array_merge() también realiza la misma operación, pero el operador de propagación es mejor porque es una construcción de lenguaje que siempre es mejor que los métodos, y PHP también optimizará el rendimiento de las matrices en tiempo de compilación.

Podemos usar el operador de propagación en cualquier lugar de la matriz, por ejemplo, al principio, en el medio o al final.

Veamos un ejemplo.

<?php
$names = ["Jack", "John"];

$all_names = ["Mike", ...$names, "Logan", "Shawn" ]; // Use of the spread operator in between

print_r($all_names);

echo "<br>";

$all_names1 = [...$names, "Mike", "Logan", "Shawn" ]; // Use of the spread operator at the begining

print_r($all_names1);
?>

El código insertará la matriz $names en las matrices $all_names usando el operador de propagación en diferentes posiciones.

Ver salida:

Array (
    [0] => Mike
    [1] => Jack
	[2] => John
	[3] => Logan
	[4] => Shawn )

Array (
    [0] => Jack
	[1] => John
	[2] => Mike
	[3] => Logan
	[4] => Shawn )

El operador de propagación se puede utilizar de forma diferente, según la posición, los tiempos, las funciones o los generadores, etc. Probemos ejemplos para cada uso del operador de difusión de PHP.

Use el operador de propagación varias veces en PHP

El operador de propagación también se puede usar varias veces en una matriz. Probemos un ejemplo.

<?php
$names1 = ["Jack", "John"];

$names2 = ["Mike", ...$names1, "Logan", "Shawn" ]; // Use of the spread operator

$all_names = [...$names1, ...$names2 ]; // Use of the multiple spread operator

print_r($all_names);
?>

El código anterior demuestra los múltiples usos del operador de propagación. Ver salida:

Array (
    [0] => Jack
	[1] => John
	[2] => Mike
	[3] => Jack
	[4] => John
	[5] => Logan
	[6] => Shawn )

Use el operador de propagación con un valor de retorno de una función en PHP

Por ejemplo, si las funciones devuelven una matriz, podemos usar el operador de propagación con esa llamada de función para colocar esos valores en la matriz. Vea el ejemplo.

<?php

function get_names()
{
    $names = ["Jack", "John"];
    return $names;
}

$names1 = ["Mike", "Logan", "Shawn" ];

$all_names = [...$names1, ...get_names() ]; // Use of the multiple spread operator with function call

print_r($all_names);
?>

El código anterior demuestra el uso del operador de extensión de PHP con el valor de retorno de la función.

Ver salida:

Array (
    [0] => Mike
	[1] => Logan
	[2] => Shawn
	[3] => Jack
	[4] => John )

Use el operador de propagación con un objeto transitable en PHP

El operador de extensión de PHP también se puede usar con los objetos, no solo con las matrices. También se puede usar con objetos transitables, lo que significa el objeto que implementa la interfaz transitable.

Probemos un ejemplo.

<?php
class Names implements IteratorAggregate
{
    private $names = ["Mike", "Logan", "Shawn" ];

    public function getIterator()
    {
        return new ArrayIterator($this->names);
    }
}

$names = new Names();
$all_names = [...$names];

print_r($all_names);
?>

El código anterior demuestra el uso del operador de propagación con el objeto transitable.

Ver salida:

Array (
    [0] => Mike
	[1] => Logan
	[2] => Shawn )

Use el operador de propagación con un generador en PHP

El operador de propagación también se puede utilizar con funciones de generador.

Por ejemplo:

<?php
function odd_numbers()
{
    for($x =1; $x < 20; $x+=2){
        yield $x;
    }
}

$odd = [...odd_numbers()];

print_r($odd);
?>

El código anterior crea una función generadora que genera el número impar entre 1 y 20 y luego usa el operador de propagación.

Ver salida:

Array (
    [0] => 1
	[1] => 3
	[2] => 5
	[3] => 7
	[4] => 9
	[5] => 11
	[6] => 13
	[7] => 15
	[8] => 17
	[9] => 19 )
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

Artículo relacionado - PHP Operator