Encapsulación
Las propiedades se definen privadas o protegidas (si queremos que las clases heredadas puedan acceder).
Para cada propiedad, se añaden métodos públicos (getter/setter):
public setPropiedad(tipo $param)
public getPropiedad() : tipo
Las constantes se definen públicas para que sean accesibles por todos los recursos.
<?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;
}
}
Recibiendo y enviando objetos
Es recomendable indicarlo en el tipo de parámetros. Si el objeto puede devolver nulos se pone ? delante del nombre de la clase.
Objetos por referencia
Los objetos que se envían y reciben como parámetros siempre se pasan por referencia.
<?php
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();