Estoy tratando de hacer algo que pensé que sería bastante simple, pero como soy relativamente nuevo en OOP en PHP, estoy teniendo algunos problemas.Cambie el valor de una variable protegida para la clase secundaria
Aquí está mi código:
<?php
class MyClass
{
protected $variable = 'DEFAULT';
function __construct($newVariable)
{
$this->variable = $newVariable;
echo $this->variable;
}
}
class OtherClass extends MyClass
{
function __construct()
{
echo $this->variable;
}
}
$foo = new MyClass('MODIFIED'); // Output : MODIFIED
$bar = new OtherClass(); // Output : DEFAULT
?>
busqué un montón de diferentes hilos y sitios web, pero no han encontrado cómo podría pasar el valor de $ redefinido variable a la clase hija. ¿Alguien puede guiarme a través de él? Si hay una manera.
Gracias de antemano.
EDITAR Aclarar lo que está sucediendo realmente en el guión que estoy teniendo este problema: tengo una clase que crea un formulario, y en esa clase hay varias variables que dicen las funciones en lo que Environnement somos: si es una forma multilenguaje o no, si quiero una forma simple o una estructurada, parámetros como ese. Y algunas de estas variables de entorno se modifican mediante la ejecución de la clase, por sus funciones.
Ahora, debido a las necesidades de mi página, tengo una clase infantil dedicada a crear campos "seleccionar". Hereda la función central de la clase principal para crear campos y tal, pero la clase hija toma varios parámetros más. La cosa es que, me gustaría que la clase seleccionada herede los parámetros de entorno de la clase principal, en el estado en que se encuentran.
Mientras escribo esto me doy cuenta de que la forma en que lo abordo puede no ser la manera correcta de hacerlo, porque cuando miro mi código creo que podría haber otra manera de hacerlo. En mi código tengo dos objetos donde necesitaría que sea solo uno, pero realmente no sé cómo lo pondré en realidad.
No está redefiniendo la variable, sólo estás de colocarlo en la constructora padres. Llámalo como si tuvieras lo que necesitas. – hakre
OOP aquí es solo una herencia de funciones y sus variables predeterminadas. No está uniendo mágicamente dos objetos. Tristemente. –