¿Por qué usar la función extract() en PHP?

La función Extract() es una función incorporada en PHP que se usa cuando hay un conflicto en el nombre de la variable. Cuando alguien escribe un código de aproximadamente 100 líneas, existe la posibilidad de que ya haya declarado la variable, entonces hay un conflicto entre qué valor le asignamos a la variable. Usando la función extract() podemos elegir qué valor se guardará.

Además, podemos usarlo para extraer la variable de una array en la tabla de símbolos. Extrae pares clave-valor en diferentes símbolos y podemos acceder a ellos directamente llamando a su variable. Recuerde siempre que no se puede usar para los datos proporcionados por el usuario donde podemos tomar datos de alguna obtención o publicación o cualquier otro método.

 extract(array, extract_rules, prefix)
  • array: Podemos pasar el array en el que queremos extraer.
  • extract_rules: Hay 8 tipos de reglas que realizan diferentes tipos de cosas
    1. EXTR_OVERWRITE
    2. EXTR_SALTAR
    3. EXTR_SI_EXISTE
    4. EXTR_REFS
    5. EXTR_PREFIX_SAME
    6. EXTR_PREFIX_INVALID
    7. EXTR_PREFIX_IF_EXISTS
    8. EXTR_PREFIX_TODO
  • prefijo: Esto declara la variable por un prefijo junto con un guión bajo. Solo se usa cuando las reglas son EXTR_PREFIX_SAME, EXTR_PREFIX_ALL, EXTR_PREFIX_INVALID o EXTR_PREFIX_IF_EXISTS

Podemos entender cada regla una por una por los ejemplos dados.

Ejemplo 1: en esto, simplemente pasamos la array y no hay reglas de extracción . Entonces no puede hacer nada con $a y permanece sin cambios.

PHP

<?php
  
    $a = "GeeksforGeeks";
    $my_array = array("a" => "Geeks","b" => "for", "c" => "Geeks");
    extract($my_array);
    echo "a = $a "."<br>"; 
    echo "b = $b "."<br>";
    echo "c = $c ";
      
?>

Producción:

Ejemplo 2: En este, usamos EXTR_OVERWRITE, por lo que sobrescribe el valor de la variable. Además, no se usa ningún prefijo como se mencionó anteriormente.

PHP

<?php
  
    $a = "GeeksforGeeks";
    $my_array = array("a" => "Geeks","b" => "for", "c" => "Geeks");
    extract($my_array, EXTR_OVERWRITE);
    echo "a = $a "."<br>"; 
    echo "b = $b "."<br>";
    echo "c = $c "."<br>";
  
?>

Producción:

Ejemplo 3: en esto, usamos EXTR_SKIP, por lo que omite el valor después de asignar la variable, ya que puede ver que el valor de $a retuvo su valor e imprimió «GeeksforGeeks». No se utiliza ningún prefijo como se mencionó anteriormente.

PHP

<?php
  
    $a = "GeeksforGeeks";
    $my_array = array("a" => "Geeks","b" => "for", "c" => "Geeks");
    extract($my_array, EXTR_SKIP);
    echo "a = $a "."<br>"; 
    echo "b = $b "."<br>";
    echo "c = $c "."<br>";
  
?>

Producción:

Ejemplo 4: en esto, usamos EXTR_IF_EXISTS, por lo que retuvo la variable que ya está declarada y, de lo contrario, no hace nada con una variable no coincidente. Como puede ver en la imagen a continuación, hay una variable indefinida b, c porque aún no está declarada, por lo que no se extraen.

PHP

<?php
  
    $a = "GeeksforGeeks";
    $my_array = array("a" => "Geeks","b" => "for", "c" => "Geeks");
    extract($my_array, EXTR_IF_EXISTS);
    echo "a = $a "."<br>"; 
    echo "b = $b "."<br>";
    echo "c = $c "."<br>";
  
?>

Producción:

Ejemplo 5: En este, usamos EXTR_REFS, por lo que se refiere a la misma variable después de extraerla. Como puede ver, puede acceder a todas las variables simplemente por su nombre de valor como se muestra en la imagen a continuación.

PHP

<?php
  
    $a = "GeeksforGeeks";
    $my_array = array("a" => "Geeks","b" => "for", "c" => "Geeks");
    extract($my_array, EXTR_REFS);
    echo "a = $a "."<br>"; 
    echo "b = $b "."<br>";
    echo "c = $c "."<br>";
  
?>

Producción:

Ejemplo 6: En este, usamos EXTR_PREFIX_SAME. En esto, cuando la variable ya está declarada, conserva su valor y crea la nueva variable con prefijo junto con la variable de subrayado y luego le asigna el valor extraído como se muestra en la imagen a continuación.

PHP

<?php
  
    $a = "GeeksforGeeks";
    $my_array = array("a" => "Geeks","b" => "for", "c" => "Geeks");
    extract($my_array, EXTR_PREFIX_SAME,"gfg");
    echo "a = $a "."<br>"; 
    echo "b = $b "."<br>";
    echo "c = $c "."<br>";
    echo "gfg_a = $gfg_a "."<br>";
  
?>

Producción:

Ejemplo 7: En este, usamos EXTR_PREFIX_INVALID. Hay una array con claves numéricas y cuando extraemos el valor crea variables con nombre de prefijo y asigna los valores como se muestra en la imagen de abajo.

PHP

<?php
  
    $my_array = array("Geeks","for", "Geeks");
    extract($my_array, EXTR_PREFIX_INVALID,"gfg");
  
    echo "gfg_0 = $gfg_0 "."<br>";
    echo "gfg_1 = $gfg_1 "."<br>";
    echo "gfg_2 = $gfg_2 "."<br>";
  
?>

Producción:

Ejemplo 8: En esto, usamos EXTR_PREFIX_IF_EXISTS, si la variable ya está declarada, conserva su valor y asigna la nueva variable con prefijo y asigna el valor de extracción como se muestra en la imagen a continuación. Solo crea una variable de prefijo si existe una versión sin prefijo de la misma variable.

PHP

<?php
  
    $a = "GeeksforGeeks";
    $my_array = array("a" => "Geeks","b" => "for", "c" => "Geeks");
    extract($my_array, EXTR_PREFIX_IF_EXISTS,"gfg");
    echo "a = $a "."<br>"; 
    echo "b = $b "."<br>";
    echo "c = $c "."<br>";
    echo "gfg_a = $gfg_a "."<br>";
  
?>

Producción:

Ejemplo 9: En esto, usamos EXTR_PREFIX_ALL, por lo que extrae todas las variables con nombres de prefijos y asigna el valor y la variable original permanece sin cambios.

PHP

<?php
  
    $a = "GeeksforGeeks";
    $my_array = array("a" => "Geeks","b" => "for", "c" => "Geeks");
    extract($my_array, EXTR_PREFIX_ALL,"gfg");
    echo "a = $a "."<br>"; 
    echo "gfg_a = $gfg_a "."<br>";
    echo "gfg_b = $gfg_b "."<br>";
    echo "gfg_c = $gfg_c "."<br>";
  
?>

Producción:

Publicación traducida automáticamente

Artículo escrito por rohanmittal1366 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *