Funciones en PHP
'; // Hola, soy una función // --- Nuestros parámetros de entrada pueden tener un valor por defecto. /** * Saluda a una persona * @param {string} - Nombre * @return {string} */ function saludar(string $nombre = 'Anónimo'): string { return 'Hola, persona llamada ' . $nombre ; } echo saludar(); echo '
'; // Hola, persona llamada Anónimo. echo saludar('Picasso'); echo '
'; // Hola, persona llamada Picasso. //De forma automática PHP arreglará las incompatibilidades de tipos. function incrementar(int $num): int { return $num + 1; } echo incrementar(4.5); echo '
'; // 5 //Podemos declarar el modo estricto para que no admita errores de tipo //declare(strict_types=1); //Return con posibilidad de null //function nombre(): ?string {...} //Es posible indicar 2 tipos diferentes de parametros //function nombre(): int|string // -------------- Algunas funciones de arrays ------------ // Diccionario $apartamentos = [ [ 'precio/noche' => 40, 'ciudad' => 'Valencia', 'wifi' => True, 'pagina web' => 'https://hotel.com' ], [ 'precio/noche' => 87, 'ciudad' => 'Calpe', 'wifi' => True, 'pagina web' => 'https://calpe.com' ], [ 'precio/noche' => 67, 'ciudad' => 'Valencia', 'wifi' => False, 'pagina web' => 'https://denia.com' ], [ 'precio/noche' => 105, 'ciudad' => 'Benidorm', 'wifi' => False, 'pagina web' => 'https://benidorm.com' ] ]; //array_walk (Iterar) // Puede modificar el array original array_walk($apartamentos, function ($apartamento, $posicion) { echo $posicion+1 .' '. $apartamento['ciudad'] . '
'; }); /* 1 Valencia 2 Calpe 3 Valencia 4 Benidorm */ echo '
'; //array_filter (filtrar) // No modifica el original $todosLosApartamentosValencia = array_filter($apartamentos, function ($apartamento) { return $apartamento['ciudad'] === 'Valencia'; }); // Extraería los dos array con ciudad Valencia //array_map (modificar) $apartamentosMasBaratos = array_map(function ($apartamento) { return array_merge($apartamento, ['precio/noche' => $apartamento['precio/noche'] - 1]); }, $apartamentos); // Le restará a todos los precio/noche //array_reduce (calcular) $media = array_reduce($apartamentos, function ($acumulador, $apartamento) { return $apartamento['precio/noche'] + $acumulador; }, 0) / count($apartamentos); ?>