PHP las variables de clase con constantes
-
30-09-2019 - |
Pregunta
Estoy recibiendo un error de análisis en las líneas con la constante (despliegue). ¿Por qué es esto ahora permitido, o me estoy perdiendo algo.
Error de análisis: error de análisis, esperando ` ')'' en
class UploadComponent extends Object {
private $config = array(
'accessKey' => 'XXXX',
'secretKey' => 'XXXX',
'images' => array(
'bucket' => DEPLOYMENT.'-files/images',
'dns' => false
),
'files' => array(
'bucket' => DEPLOYMENT.'-files/files',
'dns' => false
),
'assets' => array(
'bucket' => DEPLOYMENT.'-files/assets',
'dns' => false
)
);
....
}
Solución
No se pueden utilizar las variables cuando la clase que define vars. Inicializar la matriz dentro del constructor en su lugar:
class UploadComponent extends Object {
private $config;
function __construct() {
$this->config = array(
'accessKey' => 'XXXX',
'secretKey' => 'XXXX',
'images' => array(
'bucket' => DEPLOYMENT.'-files/images',
'dns' => false
),
'files' => array(
'bucket' => DEPLOYMENT.'-files/files',
'dns' => false
),
'assets' => array(
'bucket' => DEPLOYMENT.'-files/assets',
'dns' => false
)
);
}
}
Otros consejos
La razón es que las constantes '' se pueden definir dinámicamente. Sus contenidos son, por tanto, sólo se conocen en tiempo de ejecución y no en tiempo de compilación.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow