Foros del Web » Programando para Internet » PHP »

me dijeron que en php la sobre carga y la sobre escritura no existen

Estas en el tema de me dijeron que en php la sobre carga y la sobre escritura no existen en el foro de PHP en Foros del Web. me dijeron que en php la sobre carga y la sobre escritura no existen eso es cierto o es falso, yo pensaba que si existía ...
  #1 (permalink)  
Antiguo 16/05/2014, 02:00
Avatar de jor_0203  
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 760
Antigüedad: 12 años, 6 meses
Puntos: 8
me dijeron que en php la sobre carga y la sobre escritura no existen

me dijeron que en php la sobre carga y la sobre escritura no existen
eso es cierto o es falso, yo pensaba que si existía en php
y por favor si existe me podrían dar un ejemplo muy básico
  #2 (permalink)  
Antiguo 16/05/2014, 03:23
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: me dijeron que en php la sobre carga y la sobre escritura no existen

sobrecarga de php (con ejemplo)

https://php.net/manual/es/language.oop5.overloading.php

sobreescritura de php (con ejemplo muy sencillo)

http://www.phpya.com.ar/poo/temarios...o=13&inicio=12
__________________
Ayúdame a hacerlo por mi mismo.
  #3 (permalink)  
Antiguo 16/05/2014, 04:49
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: me dijeron que en php la sobre carga y la sobre escritura no existen

- No hay es "sobre-carga de operadores"

- No existe polimorfismo de metodos a nivel de parametros (numero y tipo) sin herencia
__________________
Salu2!
  #4 (permalink)  
Antiguo 16/05/2014, 18:41
Avatar de jor_0203  
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 760
Antigüedad: 12 años, 6 meses
Puntos: 8
Respuesta: me dijeron que en php la sobre carga y la sobre escritura no existen

Cita:
Iniciado por Italico76 Ver Mensaje
- No hay es "sobre-carga de operadores"

- No existe polimorfismo de metodos a nivel de parametros (numero y tipo) sin herencia
disculpa me puedes dar un ejemplo ya que no comprendo muy bien
gracias
  #5 (permalink)  
Antiguo 16/05/2014, 19:31
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: me dijeron que en php la sobre carga y la sobre escritura no existen

@jor_0203 : dar ejemplos aca seria de otros lenguajes ya que PHP no tiene esas "features" pero intentemos.....

- Sobrecarga de operadores:


Código PHP:
<?php
include "sobrecarga.php";

/*
   Multiplicaciones de vectores
*/

$a = [2,3,6];
$b = [1,8];

var_dump($a $b);
Suponiendo que en sobrecarga.php se hiciera la sobrecarga de operadores (de forma similar a como explican aca), en este caso el '*', el resultado seria poder multiplicar vectores, dando una matriz de 3x2


- Polimorfismo de metodos a nivel de parametros (numero y tipo) sin herencia:
(con esto quiero decir que no sean las clases descendientes las que implementan variaciones)

Código PHP:
Ver original
  1. <?php
  2.  
  3. Class Algo
  4. {
  5.  
  6.     public function metodo ($param1,$param2)
  7.     { // ... }
  8.  
  9.     public function metodo (int $param1)
  10.     { // ... }
  11.  
  12.     public function metodo (string $param1, int $param2, array $param3)
  13.     { // ... }
  14.  
  15. }

Notas que el metodo siempre se llama igual (metodo) ? bueno segun el numero de parametros y el tipo. cuando invocas a metodo() se mete en una "version" u otra de metodo()

En PHP no puedes ni en sueños hacer eso porque con parametros opcionales puedes hacer "algo" pero llegas a emular ese comportamiento y las interfaces de PHP son muyyy rigidas tambien.

Mira un ejemplo en JAVA para que veas no estoy "inventado":


Código Java:
Ver original
  1. class Overload
  2. {
  3.     void demo (int a)
  4.     {
  5.        System.out.println ("a: " + a);
  6.     }
  7.     void demo (int a, int b)
  8.     {
  9.        System.out.println ("a and b: " + a + "," + b);
  10.     }
  11.     double demo(double a) {
  12.        System.out.println("double a: " + a);
  13.        return a*a;
  14.     }
  15. }
  16. class MethodOverloading
  17. {
  18.     public static void main (String args [])
  19.     {
  20.         Overload Obj = new Overload();
  21.         double result;
  22.         Obj .demo(10);
  23.         Obj .demo(10, 20);
  24.         result = Obj .demo(5.5);
  25.         System.out.println("O/P : " + result);
  26.     }
  27. }

Nota que el numero de parametros y tipo son disntintos en demo() ... eso se resuelve en tiempo de "compilacion", pero en PHP por ahora se trabaja como interprete......asi que esas cosas son un poco dificiles de lograr
__________________
Salu2!

Última edición por Italico76; 16/05/2014 a las 21:17
  #6 (permalink)  
Antiguo 16/05/2014, 22:06
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: me dijeron que en php la sobre carga y la sobre escritura no existen

Buenos apuntes Italico76.

Sobre la sobrecarga de metodos solo se me ocurrió algo parecido a lo siguiente, que se basa en trasladar esa dinamicidad al lado externo de la clase.

Código PHP:
Ver original
  1. class Encuentro{
  2.    
  3.     private function __construct() {
  4.         return new Encuentro();
  5.     }
  6.    
  7.     function hola(){
  8.         echo "hola<br>";
  9.     }
  10.    
  11.     function ponencia(){
  12.         echo "que tal<br>";
  13.     }
  14.    
  15.     function adios(){
  16.             echo "adios<br>";
  17.     }
  18. }
  19.  
  20. $method="hola";
  21.  
  22. Encuentro::$method();
  23.  
  24. $method="ponencia";
  25.  
  26. Encuentro::$method();
  27.  
  28. $method="adios";
  29.  
  30. Encuentro::$method();

Es decir, llamada dinámica a los metodos desde fuera de la clase, ahora quedaría el asunto de los parámetros de forma variable.

Un saludo.
__________________
Ayúdame a hacerlo por mi mismo.
  #7 (permalink)  
Antiguo 17/05/2014, 03:55
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: me dijeron que en php la sobre carga y la sobre escritura no existen

Cita:
Iniciado por Italico76 Ver Mensaje
Nota que el numero de parametros y tipo son disntintos en demo() ... eso se resuelve en tiempo de "compilacion", pero en PHP por ahora se trabaja como interprete......asi que esas cosas son un poco dificiles de lograr
El problema no es que PHP trabaje como interprete.El problema es que PHP es no tipado, por lo que, basicamente, todas las signatures de metodos con 2 parametros y mismo nombre..es la misma.
El Type-hinting ayuda a los editores de texto, pero no sé (no creo) que esté implementado en el motor.
  #8 (permalink)  
Antiguo 17/05/2014, 05:23
Avatar de jor_0203  
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 760
Antigüedad: 12 años, 6 meses
Puntos: 8
Respuesta: me dijeron que en php la sobre carga y la sobre escritura no existen

Cita:
Iniciado por dashtrash Ver Mensaje
El problema no es que PHP trabaje como interprete.El problema es que PHP es no tipado, por lo que, basicamente, todas las signatures de metodos con 2 parametros y mismo nombre..es la misma.
El Type-hinting ayuda a los editores de texto, pero no sé (no creo) que esté implementado en el motor.
y tu que piensas de lo que dice Italico76
estas totalmente de acuerdo
  #9 (permalink)  
Antiguo 17/05/2014, 05:30
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: me dijeron que en php la sobre carga y la sobre escritura no existen

Cita:
Iniciado por jor_0203 Ver Mensaje
y tu que piensas de lo que dice Italico76
estas totalmente de acuerdo
Logicamente @dashtrash con razon no esta de acuerdo en la argumentacion de porque no esta implementada la segunda caracteristica (polimorfismo sin herencia). Y tiene razon!

Finalmente aclarar que PHP si implementa "method overriding" (sobre-escritura) pero no "method overloading" que es lo que mencioné en segundo lugar; puedes leer mas aqui
__________________
Salu2!

Última edición por Italico76; 17/05/2014 a las 05:59
  #10 (permalink)  
Antiguo 17/05/2014, 06:04
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: me dijeron que en php la sobre carga y la sobre escritura no existen

Cita:
Iniciado por jor_0203 Ver Mensaje
y tu que piensas de lo que dice Italico76
estas totalmente de acuerdo
Lo que dice Italico76 es, en general, cierto.Mi pega no era sobre "el qué", sino "el por qué"
Lo que ocurre es que el propio manual de PHP llama "sobrecarga" a cosas que no lo son, pero se pueden utilizar para simularla.
En el link que daba @guardarmicorreo, https://php.net/manual/es/language.oop5.overloading.php, se llama "overload" a algo que no lo es (como también opina el primer comentario de usuarios que hay en esa página). Los métodos mágicos te permiten simularlo:
Código PHP:
Ver original
  1. class A
  2. {
  3.      function __call($func,$args)
  4.      {
  5.  
  6.              $n=count($args);
  7.              call_user_func_array(array($this, $func."_".$n), $args);
  8.       }
  9.       private function overloaded_0()
  10.       {
  11.                echo "No args";
  12.       }
  13.       private function overloaded_1($arg1)
  14.       {
  15.                echo "One arg";
  16.       }
  17.       private function overloaded_2($arg1,$arg2)
  18.       {
  19.                echo "Two args";
  20.       }
  21. }
  22. $c=new A();
  23. $c->overloaded(); // "No args"
  24. $c->overloaded(1); // "One arg"
  25. $c->overloaded(1,2); // "Two args"

De la misma forma se puede hacer con tipos de dato:
Código PHP:
Ver original
  1. class A
  2. {
  3.      function __call($func,$args)
  4.      {
  5.              $n=count($args);
  6.              if($n>0)
  7.              {
  8.                     $func=$func."_".implode("_",array_map("gettype",$args));
  9.              }
  10.              call_user_func_array(array($this, $func), $args);
  11.       }
  12.       private function overloaded()
  13.       {
  14.               echo "No args";
  15.        }
  16.       private function overloaded_integer($i)
  17.       {
  18.                echo "Received integer";
  19.       }
  20.       private function overloaded_boolean_array($b,$a)
  21.       {
  22.                echo "Received boolean and array";
  23.       }
  24.       private function overloaded_object_double($o,$d)
  25.       {
  26.                echo "Received object and double";
  27.       }
  28. }
  29. $c=new A();
  30. $c->overloaded(); // No args
  31. $c->overloaded(1); // Received integer
  32. $c->overloaded(false,array(1,2,3)); // Received boolean and array
  33. $c->overloaded(new A(),1.5); // Received object and double

Significa esto que PHP soporta polimorfismo? No, significa que ese código simula polimorfismo.
  #11 (permalink)  
Antiguo 17/05/2014, 06:19
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: me dijeron que en php la sobre carga y la sobre escritura no existen

@dashtrash : wow .. pedazo de ejemplos!


Siempre me quedo con una frase que he leido por ahi: "PHP hace lo Facil, muy facil y lo Dificil mucho mas dificil" xD
__________________
Salu2!
  #12 (permalink)  
Antiguo 17/05/2014, 08:28
Avatar de jor_0203  
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 760
Antigüedad: 12 años, 6 meses
Puntos: 8
Respuesta: me dijeron que en php la sobre carga y la sobre escritura no existen

Cita:
Iniciado por Italico76 Ver Mensaje
@dashtrash : wow .. pedazo de ejemplos!


Siempre me quedo con una frase que he leido por ahi: "PHP hace lo Facil, muy facil y lo Dificil mucho mas dificil" xD
eres un genio
  #13 (permalink)  
Antiguo 17/05/2014, 08:37
Avatar de jor_0203  
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 760
Antigüedad: 12 años, 6 meses
Puntos: 8
Respuesta: me dijeron que en php la sobre carga y la sobre escritura no existen

Cita:
Iniciado por dashtrash Ver Mensaje
Lo que dice Italico76 es, en general, cierto.Mi pega no era sobre "el qué", sino "el por qué"
Lo que ocurre es que el propio manual de PHP llama "sobrecarga" a cosas que no lo son, pero se pueden utilizar para simularla.
En el link que daba @guardarmicorreo, https://php.net/manual/es/language.oop5.overloading.php, se llama "overload" a algo que no lo es (como también opina el primer comentario de usuarios que hay en esa página). Los métodos mágicos te permiten simularlo:
Código PHP:
Ver original
  1. class A
  2. {
  3.      function __call($func,$args)
  4.      {
  5.  
  6.              $n=count($args);
  7.              call_user_func_array(array($this, $func."_".$n), $args);
  8.       }
  9.       private function overloaded_0()
  10.       {
  11.                echo "No args";
  12.       }
  13.       private function overloaded_1($arg1)
  14.       {
  15.                echo "One arg";
  16.       }
  17.       private function overloaded_2($arg1,$arg2)
  18.       {
  19.                echo "Two args";
  20.       }
  21. }
  22. $c=new A();
  23. $c->overloaded(); // "No args"
  24. $c->overloaded(1); // "One arg"
  25. $c->overloaded(1,2); // "Two args"

De la misma forma se puede hacer con tipos de dato:
Código PHP:
Ver original
  1. class A
  2. {
  3.      function __call($func,$args)
  4.      {
  5.              $n=count($args);
  6.              if($n>0)
  7.              {
  8.                     $func=$func."_".implode("_",array_map("gettype",$args));
  9.              }
  10.              call_user_func_array(array($this, $func), $args);
  11.       }
  12.       private function overloaded()
  13.       {
  14.               echo "No args";
  15.        }
  16.       private function overloaded_integer($i)
  17.       {
  18.                echo "Received integer";
  19.       }
  20.       private function overloaded_boolean_array($b,$a)
  21.       {
  22.                echo "Received boolean and array";
  23.       }
  24.       private function overloaded_object_double($o,$d)
  25.       {
  26.                echo "Received object and double";
  27.       }
  28. }
  29. $c=new A();
  30. $c->overloaded(); // No args
  31. $c->overloaded(1); // Received integer
  32. $c->overloaded(false,array(1,2,3)); // Received boolean and array
  33. $c->overloaded(new A(),1.5); // Received object and double

Significa esto que PHP soporta polimorfismo? No, significa que ese código simula polimorfismo.
me podrias esplicar esto que dijiste
Significa esto que PHP soporta polimorfismo? No, significa que ese código simula polimorfismo
no entiendo bien el polimorfismo de java y el de php, que vez que yo no alcanzo a ver
  #14 (permalink)  
Antiguo 17/05/2014, 08:39
lolainas
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: me dijeron que en php la sobre carga y la sobre escritura no existen

Este tema ya se trató en alguna ocasión
http://www.forosdelweb.com/f18/aport...imple-1093873/
  #15 (permalink)  
Antiguo 17/05/2014, 16:19
Avatar de jor_0203  
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 760
Antigüedad: 12 años, 6 meses
Puntos: 8
Respuesta: me dijeron que en php la sobre carga y la sobre escritura no existen

Cita:
Iniciado por lolainas Ver Mensaje
Este tema ya se trató en alguna ocasión
http://www.forosdelweb.com/f18/aport...imple-1093873/
gracias buen aporte
estoy leyendo
  #16 (permalink)  
Antiguo 17/05/2014, 17:07
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: me dijeron que en php la sobre carga y la sobre escritura no existen

Cita:
Iniciado por lolainas Ver Mensaje
Este tema ya se trató en alguna ocasión
http://www.forosdelweb.com/f18/aport...imple-1093873/
No había visto eso...
La primera solución es igual a la que propuse más arriba , con el añadido del chequeo de clases, y la complicación de no usar __call, pero funciona.
Sin embargo, si se quiere hacer una solución "completa" (ya que está marcado como "aporte"), debería gestionar clases derivadas.No es suficiente con llamar a get_class para hacer matching de clases.Si B extiende de A , un metodo que está declarado como que recibe un parametro de tipo A , debería poder recibir un parametro de tipo B (uso de get_parent_class tantas veces como sea necesario).
Gestionar namespaces también sería un bonito añadido.Y métodos estáticos.

La segunda solución, usando Reflection, es innecesariamente complicada (una clase abstracta sin métodos abstractos??), y no funciona.Utilizar los nombres de parámetros como discriminador, significa que no puedes declarar una función que reciba 2 parametros del mismo tipo ($array,$array).
Utilizar Reflection sólo sería necesario para una cosa: permitir parámetros con valores por defecto.Una funcion con signature a_integer_integer_integer($a,$b,$c=null), podria ser invocada
aunque sólo se llamara con a(1,1).

La tercera solución, aún más complicada, vuelve a no funcionar por el mismo motivo anterior, aparte de que hacer varias expresiones regulares en __call..Al menos, eso debería cachearse en el constructor, y no chequearlo en cada llamada.

Todas las soluciones utilizan innecesariamente el numero de argumentos como parte del nombre del método, cuando la coincidencia del numero de argumentos está implícito en el chequeo de tipos.

Es un post interesante, porque muestra el peligro de hacer sobre-ingeniería de las cosas.La primera solución era simple y básicamente correcta, sólo faltaba el conveniente detalle de __call y el retorno de valores.El resto de cosas a añadir para una solución completa, se podría hacer de forma igualmente simple.

Última edición por dashtrash; 17/05/2014 a las 17:45
  #17 (permalink)  
Antiguo 17/05/2014, 17:47
Avatar de jor_0203  
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 760
Antigüedad: 12 años, 6 meses
Puntos: 8
Respuesta: me dijeron que en php la sobre carga y la sobre escritura no existen

Cita:
Iniciado por dashtrash Ver Mensaje
No había visto eso...
La primera solución es igual a la que propuse más arriba , con el añadido del chequeo de clases, y la complicación de no usar __call, pero funciona.
Sin embargo, si se quiere hacer una solución "completa" (ya que está marcado como "aporte"), debería gestionar clases derivadas.No es suficiente con llamar a get_class para hacer matching de clases.Si B extiende de A , un metodo que está declarado como que recibe un parametro de tipo A , debería poder recibir un parametro de tipo B (uso de get_parent_class tantas veces como sea necesario).
Gestionar namespaces también sería un bonito añadido.Y métodos estáticos.

La segunda solución, usando Reflection, es innecesariamente complicada (una clase abstracta sin métodos abstractos??), y no funciona.Utilizar los nombres de parámetros como discriminador, significa que no puedes declarar una función que reciba 2 parametros del mismo tipo ($array,$array).
Utilizar Reflection sólo sería necesario para una cosa: permitir parámetros con valores por defecto.Una funcion con signature a_integer_integer_integer($a,$b,$c=null), podria ser invocada
aunque sólo se llamara con a(1,1).

La tercera solución, aún más complicada, vuelve a no funcionar por el mismo motivo anterior, aparte de que hacer varias expresiones regulares en __call..Al menos, eso debería cachearse en el constructor, y no chequearlo en cada llamada.

Todas las soluciones utilizan innecesariamente el numero de argumentos como parte del nombre del método, cuando la coincidencia del numero de argumentos está implícito en el chequeo de tipos.

Es un post interesante, porque muestra el peligro de hacer sobre-ingeniería de las cosas.La primera solución era simple y básicamente correcta, sólo faltaba el conveniente detalle de __call y el retorno de valores.El resto de cosas a añadir para una solución completa, se podría hacer de forma igualmente simple.
una pregunta tu a que le llamas peligro de hacer sobre-ingeniería de las cosas
porque es un peligro
  #18 (permalink)  
Antiguo 17/05/2014, 18:50
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: me dijeron que en php la sobre carga y la sobre escritura no existen

Cita:
Iniciado por jor_0203 Ver Mensaje
una pregunta tu a que le llamas peligro de hacer sobre-ingeniería de las cosas
porque es un peligro
Aplicando KISS: Hay que aplicar KISS (Keep It Simple, Stupid).

Resumo la lista de cosas que faltan en las implementaciones:
- Soporte de clases derivadas en métodos con argumentos de clases base, interfaces o traits.
- Soporte de métodos con 2 parámetros del mismo tipo
- Soporte de clases dentro namespaces
- Soporte de métodos estáticos.
Sin embargo, se intenta poner cuidado en otras cosas puramente estilísticas, y (como es muy habitual), discutiblemente aplicadas: declarar la clase Overridable como abstracta, para que no se puedan crear instancias (eso no es una clase abstracta, es una clase con constructor protected), o lanzar una ReflectionException (cuando en este caso, cualquiera entendería mejor el mensaje "function 'xxx.xxx.xxx' not found" que una "ReflectionException", aparte de que no es un error que un programa deba gestionar vía catch()).

El foco pasa del "qué", al "como",y eso es una cosa a evitar siempre.

Última edición por dashtrash; 17/05/2014 a las 19:00
  #19 (permalink)  
Antiguo 18/05/2014, 02:02
Avatar de jor_0203  
Fecha de Ingreso: octubre-2011
Ubicación: mexico
Mensajes: 760
Antigüedad: 12 años, 6 meses
Puntos: 8
Respuesta: me dijeron que en php la sobre carga y la sobre escritura no existen

Cita:
Iniciado por dashtrash Ver Mensaje
Aplicando KISS: Hay que aplicar KISS (Keep It Simple, Stupid).

Resumo la lista de cosas que faltan en las implementaciones:
- Soporte de clases derivadas en métodos con argumentos de clases base, interfaces o traits.
- Soporte de métodos con 2 parámetros del mismo tipo
- Soporte de clases dentro namespaces
- Soporte de métodos estáticos.
Sin embargo, se intenta poner cuidado en otras cosas puramente estilísticas, y (como es muy habitual), discutiblemente aplicadas: declarar la clase Overridable como abstracta, para que no se puedan crear instancias (eso no es una clase abstracta, es una clase con constructor protected), o lanzar una ReflectionException (cuando en este caso, cualquiera entendería mejor el mensaje "function 'xxx.xxx.xxx' not found" que una "ReflectionException", aparte de que no es un error que un programa deba gestionar vía catch()).

El foco pasa del "qué", al "como",y eso es una cosa a evitar siempre.
lo que eres tu y Italico76 son geniales
ojala con estudio pueda alcanzarlos algún día
  #20 (permalink)  
Antiguo 18/05/2014, 06:37
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: me dijeron que en php la sobre carga y la sobre escritura no existen

Cita:
Iniciado por jor_0203 Ver Mensaje
lo que eres tu y Italico76 son geniales
ojala con estudio pueda alcanzarlos algún día
Me da pena me pongas en la misma sentencia con @dashtrash : él es un programador profesional verdaderamente experimentado y yo apenas un eterno aprendiz

Por cierto tambien admiro a dashtrash
__________________
Salu2!
  #21 (permalink)  
Antiguo 18/05/2014, 14:41
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: me dijeron que en php la sobre carga y la sobre escritura no existen

Cita:
Iniciado por dashtrash Ver Mensaje
Aplicando KISS: Hay que aplicar KISS (Keep It Simple, Stupid).

Resumo la lista de cosas que faltan en las implementaciones:
- Soporte de clases derivadas en métodos con argumentos de clases base, interfaces o traits.
- Soporte de métodos con 2 parámetros del mismo tipo
- Soporte de clases dentro namespaces
- Soporte de métodos estáticos.
Sin embargo, se intenta poner cuidado en otras cosas puramente estilísticas, y (como es muy habitual), discutiblemente aplicadas: declarar la clase Overridable como abstracta, para que no se puedan crear instancias (eso no es una clase abstracta, es una clase con constructor protected), o lanzar una ReflectionException (cuando en este caso, cualquiera entendería mejor el mensaje "function 'xxx.xxx.xxx' not found" que una "ReflectionException", aparte de que no es un error que un programa deba gestionar vía catch()).

El foco pasa del "qué", al "como",y eso es una cosa a evitar siempre.
hola, dashtrash, aprecio tus criticas, serias tan amable de pasar nuevamente por el post y ver la version que acabo de publicar? contempla todo lo que vos sugeriste y tambien lo que menciono hhs me gustaria si es posible que des una nueva opinion de la ultima version. no publico nada aca para no intrometerme en este tema mas de lo indispensable. gracias.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios

Etiquetas: escritura
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:46.