1
<!DOCTYPE html>
<html>
<body>
<h2>Funciones Modernas en PHP 8.3</h2>
<?php
// 1. Declaración de una función con tipos de entrada y retorno
function formatearPrecio(float $monto, string $moneda = "USD"): string {
return $moneda . " " . number_format($monto, 2, '.', ',');
}
// 2. Función de cálculo de descuento con valores por defecto
function calcularDescuento(float $precio, float $porcentaje = 10.0): float {
$ahorro = $precio * ($porcentaje / 100);
return $precio - $ahorro;
}
// 3. Invocación estándar
$precioOriginal = 150.00;
$precioFinal = calcularDescuento($precioOriginal, 20.0);
echo "<p>Precio Original: <strong>" . formatearPrecio($precioOriginal) . "</strong></p>";
echo "<p>Precio con 20% desc: <strong style='color:#059669;'>" . formatearPrecio($precioFinal) . "</strong></p>";
echo "<hr>";
echo "<h4>Uso de Argumentos con Nombre (PHP 8+):</h4>";
// Invocamos especificando nombres (el orden no importa)
echo "<p>Cálculo con COP: <strong>" . formatearPrecio(moneda: "COP", monto: 450000.00) . "</strong></p>";
// 4. Arrow Function para transformar una lista de notas
echo "<hr>";
echo "<h4>Arrow Function con array_map():</h4>";
$notas = [75, 88, 92, 64, 100];
// Sumar 5 puntos de bonificación con fn()
$bonificadas = array_map(fn(int $nota): int => min(100, $nota + 5), $notas);
echo "Notas originales: " . implode(", ", $notas) . "<br>";
echo "Notas con bono de Kilopolis (+5): <strong>" . implode(", ", $bonificadas) . "</strong>";
?>
</body>
</html>
Haz clic para editar este código