Ver Mensaje Individual
  #13 (permalink)  
Antiguo 17/05/2014, 08:37
Avatar de jor_0203
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