¿Por qué los atributos PHP no permiten funciones?
Soy bastante nuevo en PHP, pero he estado programando en lenguajes similares durante años. Me desconcertó lo siguiente:
class Foo {
public $path = array(
realpath(".")
);
}
Produjo un error de sintaxis:Parse error: syntax error, unexpected '(', expecting ')' in test.php on line 5
Cuál es elrealpath
llamada.
Pero esto funciona bien:
$path = array(
realpath(".")
);
Después de golpearme la cabeza contra esto por un tiempo, me dijeron que no puede llamar a las funciones en un atributo predeterminado; tienes que hacerlo en__construct
. Mi pregunta es: ¿por qué? ¿Es esta una "característica" o una implementación descuidada? ¿Cuál es la razón?