Otro concepto importante de la orientación a objetos es la sobrecarga de funciones. En lenguajes que no permiten la sobrecarga debemos definir dos métodos distintos (con nombre distinto) para poder trabajar con dos funciones que hacen lo mismo, pero reciben distintos tipos de datos. La sobrecarga es muy importante para el constructor ya que normalmente tendremos distintas formas de crear la clase.
En PHP no existen las sobrecargas como tal. Sin embargo, existen mecanismos para imitarla. Como ya he dicho, la sobrecarga es muy importante en el caso del constructor, así que haremos el ejemplo siguiente, sobrecargando esta función.
El mecanismo que seguimos para imitar a la sobrecarga es usar los atributos opcionales. Imaginad que queremos tener dos constructores distintos:
La implementación, sería tal como indicamos a continuación (tenemos que poner el parámetro $id al final para poder jugar con los atributos opcionales):
function __construct($nombre, $apellidos, $codigoPostal, $id = 0) { if($id != 0) { $this->id = $id; $this->nombre = $nombre; $this->apellidos = $apellidos; $this->codigoPostal = $codigoPostal; } else { $this->id = rand(0,100); $this->nombre = $nombre; $this->apellidos = $apellidos; $this->codigoPostal = $codigoPostal; } }
Al poner el identificador al final, igualado a cero en la declaración, lo que le estamos diciendo al compilador es que:
$usuario_1 = new Usuario("José", "Gómez Martínez", 14004); $usuario_2 = new Usuario("José", "Gómez Martínez", 14004, 10);
Ambas sentencias son válidas, la primera asigna un identificador aleatorio y la segunda, asigna el identificador igual a 10.
https://www.youtube.com/embed/z-xGk9c_eOw Guionista y locutor: Manuel Ignacio López Quintero.Fecha de publicación: 31 de diciembre de 2024.
Ver comentarios
gracias, por esta nueva entrada del curso
salu2
@javier parra: Mañana o a lo largo del fin de semana habrá otro. Esperemos que a Google también le guste y nos referencie bien alto :)
Muy buenos los tutoriales, pero no sé como implementarlos, es decir, donde escribir el código y donde invocarlo, o donde escribir las clases, ¿Dentro del body O qué?
Muchas Gracias.
@MontoGeek
el codigo php va dentro del body la etiqueta de principio del codigo php es <?php y la de cierre <?
el codigo php es codigo del lado del servidor el servidor se encarga de procesar el codigo y devolver una pagina html o xhtml.
El codigo php va mezclado entre el codigo html.
Programas para crear paginas en codigo php tienes el gedti o el bluefish en linux entre otros y en windows el bloc de notas, el notepad ++, o el bluefish tambien.
Las páginas con codigo php tienen que tener la extension php
Espero haberte ayudado
@MontoGeek: Es justo como dice javier parra.
@javier parra: Mil gracias por tu ayuda :)
@Carazo de nada para eso estamos
Por cierto hay una errata el editor de texto en linux es gedit y no gedti como dije.
Y se me olvidó comentar que para probar paginas php sin subirlas a internet, ya sea servidor comprado propio, servidor compartido o servidor gratuito compartido, puedes usar apache tanto en windows como en gnu/linux y si necesitas de un gestor de bases de datos para tus paginas php puedes usar el mysql que está tanto para windows como para gnu/linux.
Para las personas novatas, a lo mejor es cuesta configurar apache con mysql para que funcione correctamente, para ello existe en gnu/linux el LAMP y en windows el WAMP o el easyphp el que mas te guste, y esos incorporan ya el apache, mysql y phpmyadmin, y lo configura el solo para que los programas se comuniquen entre sí.
El phpmyadmin permite una gestion grafica de las bases de datos que tengamos creadas.
Un saludo
javier
Hola yo queria saber si a partir de php 6 existe la posibilidad de sobrecarga de metodos en php o si se esta pensando en incorporar esa funcionalidad.
Saludos
Gracias