¿ Mis preguntas son las siguientes?
¿Por qué puedo definir un metodo que utiliza un atributo que no está definido en la clase ("$this->descuento") y no devuelve un error al usarlo?
Y
¿ Por que se puede asignar a un objeto un atributo que no existe en la clase?
la linea de codigo es "$articulo1->descuento=10;"
CLASE:
Código:
<?php class articulo{ //ATRIBUTOS public $nombre; public $precio; //CONSTRUCTOR public function __construct($nombre,$precio){ $this->nombre=$nombre; $this->precio=$precio; } //METODOS public function damedatos() { echo "NOMBRE: ".$this->nombre."<br/>"; echo "PRECIO: ".$this->precio."<br/>"; } public function descuento() { echo "PRECIO CON ".$this->descuento."€ DESCUENTO: ".($this->precio-$this->descuento); } } //INSTANCIO EL OBJETO $articulo1= new articulo("libro",20); // LLAMO AL METODO $articulo1->damedatos(); //ASIGNO UN ATRIBUTO QUE NO ESTÄ DEFINIDO EN LA CLASE. // LA CLASE SI SE COMENTA ESTA LINEA FUNCIONA IGUAL PERO SIN HACER EL DESCUENTO. $articulo1->descuento=10; //LAMO AL METODO QUE UTILIZA UN ATRIBUTO QUE NO ESTÁ DEFINIDO. $articulo1->descuento(); ?>
Espero alguna respuesta.
GRACIAS