class
Una clase es una colección de variables y de funciones que acceden a esas
variables_ Una clase se define con la siguiente sintaxis:
El ejemplo define una clase llamada Cart que consiste en un array
asociativo de artículos en el carro y dos funciones para meter y sacar ítems del carro
Las clases son tipos, es decir, son plantillas para variables_ Tienes que crear una variable del
tipo deseado con el operador new_
Este ejemplo crea un objeto $cart de clase Cart_ La función add_item() de ese objeto se llama para añadir un
item del artículo número 10 al carro_
Las Clases pueden ser extensiones de otras clases_
Las clases extendidas o derivadas tienen todas las variables y funciones de la clase base y lo que les añadas
al extender la definición_ La herencia múltiple no está soportada_
Ese ejemplo define una clase Named_Cart (carro con nombre o dueño) que tiene todas las variables
y funciones de Cart, y además añade la variable $owner y una función adicional set_owner()_
Un carro con nombre se crea de la forma habitual y, una vez hecho, puedes acceder al
propietario del carro_ En los carros con nombre también puedes acceder a las funciones normales del carro:
Entre funciones de una clase, la variable $this hace referencia al
propio objeto_ Tienes que usar $this_>loquesea para acceder a una variable
o función llamada loquesea del objeto actual_
Los constructores son funciones de una clase que se llaman automáticamente
al crear una nueva instancia (objeto) de una clase_ Una función se convierte
en constructor cuando tiene el mismo nombre que la clase_
Este ejemplo define una clase Auto_Cart que es un Cart junto con un constructor
que inicializa el carro con un item del tipo de artículo "10" cada vez que se
crea un nuevo Auto_Cart con "new"_ Los constructores también pueden recibir parámetros
y estos parámetros pueden ser opcionales, lo que los hace más útiles_
| Atención |
Para las clases derivadas, el constructor de la clase padre no es llamado automáticamente cuando
se llama al constructor de la clase derivada_
|