Hola a tod@s, hace poco me he comprado un libro de PHP5
"PHP5 - Manuales imprescindibles de Anaya ISBN: 84-415-1785-1" Y lo primero que he hecho ha sido empaparme del
"Capitulo 9: Programación orientada a objetos"... Me lo he leido entero y repasado, los dias siguientes. Aunque sé que estoy muy verde todavía.
Bueno el caso es que despues de leer me he puesto a probar una cosita que me reconcomia jejeje... Y es la herencia encadenada... Pues yo siempre habia pensado que como no es herencia multiple, lo que es la herencia encadenada tampoco se podia hacer. Pero he visto que si.
Entonces, me he puesto manos a la obra y he hecho 3 clases ('A', 'B' y 'C') de tal forma que 'C' hereda de 'B' y esta hereda de 'A'. Con la intención de ver si la visibilidad de los miembros de 'A' llega a 'C'. es decir, si la herencia pasa de 'A' a 'B' y 'C'.
Antes de poner el codigo voy a poner las versiones del server, apache, php, extensiones etc...
Cita: Packages:
Apache 2.0.59
PHP 5.2.0
Mysql 5.0.27
SQLite 3.3.8
PhpMyAdmin 2.9.1.1
SQLiteManager 1.2.0
ZendOptimizer 3.2.0
Loaded PHP extensions:
bcmath, calendar, com_dotnet, ctype, session, filter, ftp, hash, iconv, json, odbc, pcre, Reflection, date, libxml, standard, tokenizer, zlib, SimpleXML, dom, SPL, wddx, xml, xmlreader, xmlwriter, apache2handler, mbstring, bz2, curl, gd, mysql, mysqli, openssl, PDO, pdo_mysql, pdo_sqlite, Zend Optimizer
Y el codigo para probar... lo he hecho así:
Código PHP:
class A {
// Atributos
public $variableA
// Metodos
public function setVariableA($variableA) {
$this->variableA = $variableA;
}
public function getVariableA() {
return $this->variableA;
}
}
class B extends A {
// Atributos
public $variableB
// Metodos
public function setVariableB($variableB) {
$this->variableB = $variableB;
}
public function getVariableB() {
return $this->variableB;
}
}
class C extends B {
// Atributos
public $variableC
// Metodos
public function setVariableC($variableC) {
$this->variableC = $variableC;
}
public function getVariableC() {
return $this->variableC;
}
}
// Llamamos a los objetos miembros de la clase A
$objA = new A();
$objA->setVariableA("Esta es la variable A.<br />");
$objA->getVariableA();
// Llamamos a los objetos miembros de la clase B
// Llamamos a los objetos miembros de la clase C
No llamo a los siguientes objetos de 'B' y 'C' en el codigo por que me ha dado un error, que no entiendo. Parece ser algo simple, pero supongo debo ignorar algo... Vosotros seguro que nadamás verlo sabeis donde la estoy cagando xD... Si fueseis tan amables de decirme o ya que es mi primer codigo POO orientarme un poco... si voy bien o si la estoy liando a saco... xD Seria de agradecer jeje ;)
Bueno os pongo el error que me da con el "public"...
Cita: Parse error: parse error, unexpected T_PUBLIC, expecting ',' or ';' in E:\Instalaciones\vertrigo\VertrigoServ\www\oop.php on line 7
Espero vuestra respuesta ;)
y gracias de antemano.