⊗ppOpBsGSA 14 of 107 menu

Ventajas de los getters y setters en POO en PHP

En la lección anterior, creamos un getter y un setter para cada propiedad. Puede surgir la pregunta: ¿por qué son necesarias tales complejidades, si de hecho se puede lograr el mismo efecto haciendo las propiedades públicas, no privadas?

El caso es que los getters y setters tienen una ventaja: antes de acceder a la propiedad se pueden realizar algunas comprobaciones. Por ejemplo, en nuestro caso, al asignar el nombre y el apellido podemos verificar que el nuevo valor no sea una cadena vacía:

<?php class User { private $name; private $surn; public function setName($name) { if (strlen($name) > 0) { $this->name = $name; } else { echo 'name is incorrect'; } } public function setSurn($surn) { if (strlen($surn) > 0) { $this->surn = $surn; } else { echo 'surn is incorrect'; } } public function getName() { return $this->name; } public function getSurn() { return $this->surn; } } ?>

Comprobemos cómo funciona esto. Primero, creemos un objeto de la clase:

<?php $user = new User(); ?>

Ahora intentemos asignar un valor correcto:

<?php $user->setName('john'); ?>

Y ahora intentemos asignar uno incorrecto:

<?php $user->setName(''); // error ?>

En la clase Employee, en el setter de la edad, implemente una verificación para asegurar que la edad debe estar entre 0 y 120.

En la clase Employee, en el getter del salario, hágalo de modo que al leer el salario, al final de su valor se agregue el signo de dólar.

bydeenesfrptru