Implementar Get y Set en PHP

Como todo lenguaje, hay sus ventajas y desventajas. La de PHP es no ser completamente orientada a objetos y esto ocasiona que algunas cosas que son implementadas en lenguajes orientados a objetos no estén presentes como lo es el caso del Get y Set, que por ejemplo en C# está presente.

Hoy vamos a ver una manera de implementarlo que tomé de esta web y que es una manera fácil:

Creamos una clase nueva de ejemplo llamada empleado.


<?php
 class empleado{
 private nombre;
 private apellido;
 private dependencia;

 public function __construct($nombre,$apellido){
 $this->nombre = $nombre;
 $this->apellido = $apellido;
 }
 }
?>

Hasta ahí normal, la manera que se viene manejando el Get y Post ha sido con “getNombre”, “setNombre”. pero la forma más sencilla es usar los métodos __get() y __set() que nos da PHP con el siguiente código, sirve para cualquier clase en PHP:


public function __set($var, $valor)
{
// convierte a minúsculas toda una cadena la función strtolower
$temporal = strtolower($var);
// Verifica que la propiedad exista, en este caso el nombre es la cadena en "$temporal"
if (property_exists('nombreDeLaClase',$temporal))
 {
$this->$temporal = $valor;
 }
 else
 {
echo $var . " No existe.";
 }
 }

 public function __get($var)
 {
$temporal = strtolower($var);
// Verifica que exista

if (property_exists('nombreDeLaClase', $temporal))
 {
return $this->$temporal;
 }

// Retorna nulo si no existe
return NULL;
 }

e implementado ya en nuestro código:


<?php
 class empleado{
 private nombre;
 private apellido;
 private dependencia;

 public function __construct($nombre,$apellido){
 $this->nombre = $nombre;
 $this->apellido = $apellido;
 }

public function __set($var, $valor)
{
// convierte a minúsculas toda una cadena la función strtolower
$temporal = strtolower($var);
// Verifica que la propiedad exista, en este caso el nombre es la cadena en "$temporal"
if (property_exists('empleado',$temporal))
 {
$this->$temporal = $valor;
 }
 else
 {
echo $var . " No existe.";
 }
 }

 public function __get($var)
 {
$temporal = strtolower($var);
// Verifica que exista

if (property_exists('empleado', $temporal))
 {
return $this->$temporal;
 }

// Retorna nulo si no existe
return NULL;
}
 }

$empleado = new empleado('Andres','Lara');
$empleado -> dependencia = 'Programador Junior';

echo $empleado -> nombre . ' - '. $empleado -> apellido .' Y la dependencia es: ' . $empleado -> dependencia;
?>

Y es de esta forma como se ve implementado el Get y Set. espero que les sirva, saludos.

Anuncios
Acerca de

Programador, usuario Linux e hincha de Millonarios de Colombia

Tagged with: , , , , , , , , , , , , , , , , , , , , ,
Publicado en manuales, php, programacion, trucos
One comment on “Implementar Get y Set en PHP
  1. antonio dice:

    Deberías colocar $ a las variables private. Buena explicación.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Sígueme en Twitter
Categorías
Flickr Photos
¡Apareció Linux!

Mirando de lado

Café

Más fotos
A %d blogueros les gusta esto: