Como PHP es un lenguaje dinámico, no realiza la sobrecarga como se esperaba en lenguajes estáticamente tipados como Java o C ++. Las respuestas anteriores son para Java, mientras que PHP se comporta un poco diferente.
Según la definición de PHP:
La sobrecarga en PHP proporciona medios para “crear” dinámicamente propiedades y métodos. Estas entidades dinámicas se procesan mediante métodos mágicos que uno puede establecer en una clase para varios tipos de acciones.
Ejemplo de sobrecarga básica:
- ¿Cómo ajustamos una curva usando funciones ortogonales?
- ¿Cuál es la lógica detrás de dejar f (x, y, z) = X (x) Y (y) Z (z) en la separación PDE de variables?
- ¿Cuál es un ejemplo de explicar una función circular trazada en un gráfico?
- ¿Por qué las funciones inversas y el recíproco de un número tienen el mismo símbolo?
- Tiene un conjunto de N números (4 [matemática] \ leq [/ matemática] N [matemática] \ leq [/ matemática] 2K, Ni [matemática] \ leq [/ matemática] 10K). Necesita encontrar 2 subconjuntos (de 2 números) donde Sum (Set1) [math] \ leq [/ math] L1 y Sum (Set2) [math] \ leq [/ math] L2 (1 [math] \ leq [/ matemática] L1, L2 [matemática] \ leq [/ matemática] 10K). ¿Cómo encontrarías los dos subconjuntos con la suma máxima?
sobrecarga de funciones ($ tmp) { if (gettype ($ tmp) === "string") echo "Tienes una cadena: $ {tmp}"; if (gettype ($ tmp) === "integer") echo "Obtuviste un número: $ {tmp}"; if (gettype ($ tmp) === "double") echo "Tienes un doble: $ {tmp}"; } sobrecarga ("Adán y Eva"); // salidas "Tienes una cadena: Adán y Eva" sobrecarga (3.14); // salidas "Tienes un doble: 3.14" sobrecarga (1); // salidas "Tienes un número: 1"
Ejemplo de anulación básica:
clase TestParent { función pública f1 () {echo 1; } función pública f2 () {echo 2; } } clase TestChild extiende TestParent { public function f2 () {echo "Función f2 anulada en clase secundaria"; } } $ tc = nuevo TestChild; $ tc-> f2 (); // genera "Función f2 anulada en clase secundaria"
Aunque el ejemplo anterior de sobrecarga está un poco inventado, puede analizar en profundidad la fuente original de php.net aquí:
http://php.net/manual/en/language.oop5.overloading.php
Otros recursos que puede encontrar útiles para mayor claridad y autenticidad / validez:
- http://stackoverflow.com/questio…
- http: //programmers.stackexchange…
Gracias, feliz codificación 🙂