Hace poco tiempo que empecé a utilizar el sistema de objetos de PHP 5 y… ya quiero que salga la versión 6.

¿Por qué? Porque la herencia no tiene el comportamiento esperado de otros lenguajes orientados a objetos.

Veamos un ejemplo:

class A {
	private $var;

	function __construct() {
		$this->var = 'A';
	}

	function ver() {
		echo $this->var;
	}
}

class B extends A {
	function __constrct() {
		$this->var = 'B';
	}
}

$a = new A();
$b = new B();
echo $a->ver();
echo $b->ver();

La salida esperada sería “AB”, pero lo que realmente sale es “AA”.

Lo que pasa es que al ejecutarse una función de una clase superior, se ejecuta en el entorno del padre, cogiendo sus variables y todo lo que haga falta… y esto, sinceramente, es una putada.

Avisados quedais!

No Responsed To This Post

Subscribes to this post comment rss or trackback url

Response To This Topic

Please Note: The comment moderation maybe active so there is no need to resubmit your comment