PHP y su bug de objetos

Informática Add comments

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!

Comparte este post:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • BarraPunto
  • Bitacoras.com
  • Identi.ca
  • Meneame
  • Netvibes
  • Technorati
  • Twitter

Comments are closed.

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Acceder