Código PHP:
class Clase {
var $variable;
function __construct($variable){
$this->variable = $variable;
}
}
class OtraClase extends Clase {
function __construct(){
//Como puedo llamar a la variable "variable" desde aquí? D:
}
}
| |||
Cómo compartir variables entre clases? Por ejemplo... tengo una clase con otras clases extendidas.... como puedo tomar una variable de la clase primaria en la clase extendida?.... por ejemplo: Código PHP: |
| ||||
Respuesta: Cómo compartir variables entre clases? Esta opción que te voy a dar se usa mucho. Imaigna que la clase Otraclase es una propiedad (una variable) de Clase. Pues puedes llamar a Otraclase desde Clase y cambiar una propiedad de Otraclase tal que haga referencia a Clase es decir:
Código PHP:
Ver original Y entonces desde $this->padre puedes acceder desde Hijo a todas las propiedades y funciones públicas de Padre. Otra opción, si no hay parentesco o subordinación entre las clases, es hacer las variables que contienen a las clases globales, o pasarlas como parámetro. De todas maneras esto no va en este foro, sino en el subforo de Programación Orientada a Objetos.
__________________ Si alguna vez parece que soy grosero, pido perdón, es un intento fallido de ser directo. AnesGy SD. Name it, Get it |
| ||||
Tema movido desde PHP a PHP orientado a objetos Si la otra clase extiende a la primera clase, la clase hija puede leer todas las propiedades y métodos public y protected de la clase padre. Esto se llama visibility te recomiendo busques el termino en google. Saludos. |
| ||||
Respuesta: Cómo compartir variables entre clases? podes hacer esto:
Código PHP:
esto es porque como bien dijo GatorV se debe a la "visibilidad" de los metodos y propiedades de las clases. Ver original |
| |||
Respuesta: Cómo compartir variables entre clases? Ohhh okay... entonces si en una clase defino una variable con "public", todas las clases extendidas pueden acceder a ella como si fuera de la misma clase extendida? Es decir, los hijos acceden a las variables del padre como si las variables fueran de los hijos? No lo sabía, gracias |
| ||||
Respuesta: Cómo compartir variables entre clases? Chicos, chicos, les recuerdo que en POO, por "estándar de facto", para el desarrollo tradicional los atributos públicos "están prohibidos". |
| ||||
Respuesta: Cómo compartir variables entre clases? Alex, conceptualmente estás perdido, no existe eso de "clase primaria", no son clases distintas, son la misma clase. Si tu esperas que la clase padre tenga un constructor y un atributo, y que luego mágicamente la clase hija no tenga un constructor con parámetros y ver los datos... no tienes idea de cómo funciona la herencia, por lo que te recomiendo repasar primero los conceptos antes de intentar probar con código (ya que no vas a llegar muy lejos). PD: estás usando "var" que es sintaxis en desuso de PHP4, cambia a PHP5. |
| |||
Respuesta: Cómo compartir variables entre clases? Cita: Entonces eso está bien o mal?
Iniciado por destor77
Código PHP:
Ver original Osea... finalmente no se puede hacer esto:
Código PHP:
es decir.. no funciona, pero como puedo hacer algo como eso? Ver original Última edición por alex1195; 17/04/2010 a las 18:42 |
| ||||
Respuesta: Cómo compartir variables entre clases? Recuerda que una de las principales ventajas de los objetos es su encapsulación, lo que tu expones es imposible, si quieres leer el atributo de la otra clase, dentro de tu clase, tienes que forzosamente pasarla como parámetro o tener un setter y llamarlo. Otra opción es que esa variable fuera una propiedad estatica, asi la puedes compartir entre todas las clases que sean de ese tipo, o las que la hereden, aunque realmente creo que si estas apenas aprendiendo, mejor primero entiendas para que sirve la herencia y luego vayas a otros temas como miembros y propiedades estaticas. Aunque PHP te permite "brincar" ciertas reglas, por ejemplo usando una variable global, no es lo recomendable, ya que precisamente rompes con esa encapsulación que debe de tener tu objeto. Saludos. Última edición por GatorV; 17/04/2010 a las 23:27 |
| |||
Respuesta: Cómo compartir variables entre clases? Si es muy necesario compartir atributos, creo que dejarlos en visibilidad protected seria mas conveniente, se conserva el encapsulamiento del objeto y aparte tienes acceso a ellos mediante herencia =D. |
| ||||
Respuesta: Cómo compartir variables entre clases? a77icu5, en POO nada es genérico, hay que ver el contexto para aplicar la solución acorde. Colocar todo como protected no es la solución a nada, hay que ver los casos en que se justifica, tampoco la herencia mecánica es recomendado. Encapsular no es sinónimo de usar protected. Saludos! |
Etiquetas: |