¿Hay alguna razón para establecer un valor para las variables en el constructor de una clase en lugar de cuando las declaras? Me doy cuenta de que no puedes pasar datos a las variables si tratas de establecerlos cuando se declaran, pero ¿qué pasa con las cosas que siempre serán las mismas (supongo que siempre será un reclamo difícil de hacer)?¿Por qué establecer variables dentro de la construcción de una clase de PHP cuando puede establecerlas cuando se declaran?
class variables_set_outside_constructor
{
private $admin_name = 'jeff';
private $current_working_directory = get_cwd();
function __construct() {}
}
en contraposición a esto:
class variables_set_inside_constructor
{
private $admin_name;
private $current_working_directory;
function __construct()
{
$this->admin_name = 'jeff';
$this->current_working_directory = get_cwd();
}
}
¿Cuáles son las ventajas y desventajas de los valores de los ajustes en el constructor frente cuando se declaran? Tengo curiosidad acerca de cualquier aspecto independiente del idioma también.
No estoy seguro de entender lo que está pidiendo. ¿Podría darnos un ejemplo de cada una de las dos técnicas que está tratando de comparar? –
Estoy agradecido porque soy un programador muy experimentado que de alguna manera nunca aprendió por qué sería malo declarar cosas fuera de un constructor. Estoy sorprendido de que tanta gente bailara alrededor de esta pregunta solo para contarte cosas irrelevantes sobre tu ejemplo. Pero un mejor ejemplo puede haber sido valores predeterminados. Como un juego - nivel int = 1; entonces el constructor puede anular esto, pero al menos siempre tendrá un valor predeterminado. Incluso después de leer esto, todavía no estoy seguro de una respuesta oficial. Supongo que continuaré declarando en clase y luego completando en constructo. –
Es posible que desee volver a verificar su segundo ejemplo. (En realidad, compruébalos ambos - 'clase X() {}' es sintaxis inválida. Pero ...) El valor por defecto de una propiedad tiene que ser literal (o tal vez una constante), lo último que escuché. – cHao