Page 65 - Programador-PHP
P. 65

Programación Procedural de Aplicaciones Web de baja complejidad
        PHP Experto – Tomo I                                                                                                                                                  Eugenia Bahit

        referencia.   Una   asignación   por   referencia,   se   realiza
        antecediendo el signo & al valor:

          $datos_de_juan = array('Apellido' => 'Pérez',
                                     'Fecha de nacimiento' => '23-11-1970',
                                     'Teléfonos' => array('Casa' => '4310-9030',
                                                         'Móvil' => '15 4017-2530',
                                                         'Trabajo' => '4604-9000'),
                                     'Casado' => True,
                                     'Pasaporte' => False,
                                     );
          foreach($datos_de_juan as $titulo => &$dato) {
              if(!is_array($dato)) {
                  if($dato === True) {
                      $dato = 'SI';
                  } else if ($dato === False) {
                      $dato = 'NO';
                  }
                  echo "{$titulo}: {$dato}" . chr(10);
              } else {
                  foreach($dato as $tipo_telefono => $numero) {
                      echo "Teléfono {$tipo_telefono}: {$numero}" . chr(10);
                  }
              }
          }



        Si tras el caso anterior, hiciéramos un print_r() notaríamos que
        los valores de "Casado" y "Pasaporte" han modificado su valor
        y su tipo:

         php > print_r($datos_de_juan);
         Array
         (
             [Apellido] => Prez
             [Fecha de nacimiento] => 23-11-1970
             [Telfonos] => Array
                 (
                     [Casa] => 4310-9030
                     [Mvil] => 15 4017-2530
                     [Trabajo] => 4604-9000
                 )
             [Casado] => SI
             [Pasaporte] => NO
         )
        La asignación por referencia, suele ser muy útil, cuando por
        ejemplo, se necesita aplicar una misma función, a todos los
        elementos de un array (por ejemplo, convertir a mayúsculas




                                              65
   60   61   62   63   64   65   66   67   68   69   70