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:
Y el codigo para probar... lo he hecho así: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
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
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
Bueno os pongo el error que me da con el "public"...
Cita:
Espero vuestra respuesta ;)Parse error: parse error, unexpected T_PUBLIC, expecting ',' or ';' in E:\Instalaciones\vertrigo\VertrigoServ\www\oop.php on line 7
y gracias de antemano.