8 MayorMenor

<?php
class MayorMenor {
    private int $mayor;
    private int $menor;

    public function setMayor(int $may) {
        $this->mayor = $may;
    }

    public function setMenor(int $men) {
        $this->menor = $men;
    }

    public function getMayor() : int {
        return $this->mayor;
    }

    public function getMenor() : int {
        return $this->menor;
    }
}

//crea una nueva función que devuelve un nuevo objeto con los valores mayor y menor que se le pasen
function maymen(array $numeros) : ?MayorMenor {
    $a = max($numeros);
    $b = min($numeros);

    $result = new MayorMenor();
    $result->setMayor($a);
    $result->setMenor($b);

    return $result;
}

$resultado =  maymen([1,76,9,388,41,39,25,97,22]);
echo "<br>Mayor: ".$resultado->getMayor();
echo "<br>Menor: ".$resultado->getMenor();

/*
Este código define una función en PHP llamada `maymen` que recibe un arreglo de números (`array $numeros`) y devuelve un objeto de tipo `MayorMenor` que contiene el mayor y el menor valor del arreglo. Vamos a analizar el código línea por línea:

### Explicación 

function maymen(array $numeros) : ?MayorMenor {
1. `function maymen(array $numeros) : ?MayorMenor`
   - Define una función llamada `maymen` que recibe un único parámetro:
     - `array $numeros`**: Es un arreglo (`array`) de números que se pasa a la función.
   - **`: ?MayorMenor`**: Especifica el tipo de retorno de la función. La interrogación (`?`) antes de `MayorMenor` indica que la función puede devolver un objeto de tipo `MayorMenor` o `null` (opcional, por si no hay números en el arreglo, aunque este caso no se maneja explícitamente en el código).

```php
    $a = max($numeros);
    $b = min($numeros);
  1. $a = max($numeros); y $b = min($numeros);:
  2. max($numeros): Esta función nativa de PHP devuelve el valor máximo en el arreglo $numeros y lo asigna a $a.
  3. min($numeros): Similarmente, min($numeros) devuelve el valor mínimo del arreglo $numeros y lo asigna a $b.
    $result = new MayorMenor();
  1. $result = new MayorMenor();:
  2. Crea una nueva instancia de la clase MayorMenor (que debería estar definida en otra parte del código) y la asigna a la variable $result.
    $result->setMayor($a);
    $result->setMenor($b);
  1. $result->setMayor($a); y $result->setMenor($b);:
  2. Asigna el valor de $a (el valor máximo del arreglo) a la propiedad mayor del objeto $result mediante el método setMayor.
  3. Asigna el valor de $b (el valor mínimo del arreglo) a la propiedad menor del objeto $result mediante el método setMenor.
  4. Estos métodos (setMayor y setMenor) deberían estar definidos dentro de la clase MayorMenor y permiten establecer los valores máximo y mínimo en el objeto.
    return $result;
}
  1. return $result;:
  2. Devuelve el objeto $result de tipo MayorMenor, que ahora contiene los valores máximo y mínimo del arreglo $numeros.

}

### Resumen
La función `maymen` toma un arreglo de números, encuentra el valor máximo y mínimo en el arreglo y los almacena en un objeto de tipo `MayorMenor`. Luego, devuelve este objeto. Este tipo de función es útil para encapsular el valor máximo y mínimo de un conjunto de datos en un solo objeto.
*/
?>