Primeramente gracias por adelantado para todo aquel que lea esto, que tengo que reconocer que es un poco aburrido y largo.
Esta vez tengo que reconocer que voy más perdido que otras veces, estoy empezando a hacer mis pinitos en POO y no entiendo el concepto de sobrecarga, sé que PHP no soporta la sobrecarga pero puede simularse, entiendo, o eso creo, el concepto de polimorfismo pero la sobrecarga me da problemas.
Quiero generar un método que dependiendo del número de parámetros que le pase me ejecuta uno u otro codigo, y quiero hacer 5 casos, si acepta dos parámetros, me da la suma, si acepta tres el producto, si acepta cuatro la suma 2 a 2 y la división...etc.
pero no entiendo varias cosas:
1) según mi codigo, en realidad estoy haciendo 5 métodos distintos con 5 nombres distinos, cuando lo que quiero es que se llamen igual.
2)se supone que cuando isntancie al método, en ese momento es cuando tengo que pasarle los parámetros, y dependiendo de cuántos sean me hará una u otra cosa.
3) pongo mi codigo, y me salta el siguiente error:
Fatal error: Call to undefined method miclase::metodo() in C:\xampp\htdocs\loader.php on line 47, no sé porque me lo llama comosi fuera estático.
os adjunto el codigo:
Código PHP:
Ver original
<?php class miclase{ public function _call($method_name,$parametros){ $this-> metodo0; } $this-> metodo1; } $this-> metodo2; } $this-> metodo3; } $this-> metodo4; } $this-> metodo5; } } else { echo "error, no existe el método";} } public function metodo1(){ return "hola";} public function metodo2($num1){ return $num1;} public function metodo3($num1,$num2){ return $num1 + $num2;} public function metodo4($num1,$num2,$num3){ return $num1 * $num2 * $num3;} public function metodo5($num1,$num2,$num3,$num4){ return ($num1 + $num2 )/($num3 + $num4); } } $objeto = new miclase(3,5,6); $objeto -> metodo(); ?>