Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/03/2007, 07:20
yoguuu
 
Fecha de Ingreso: enero-2005
Mensajes: 149
Antigüedad: 12 años, 10 meses
Puntos: 2
Aprendiendo POO me he topado con un error con public

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 {
    
// Atributos
    
public $variableA
    
    
// Metodos
    
public function setVariableA($variableA) {
        
$this->variableA $variableA;
    }
    public function 
getVariableA() {
        return 
$this->variableA;
    }
}
class 
extends {
    
// Atributos
    
public $variableB
    
    
// Metodos
    
public function setVariableB($variableB) {
        
$this->variableB $variableB;
    }
    public function 
getVariableB() {
        return 
$this->variableB;
    }
}
class 
extends {
    
// 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.