2010-10-14 16 views
1

Je reçois une erreur d'analyse sur les lignes avec la constante (DEPLOIEMENT). Pourquoi est-ce maintenant autorisé, ou ai-je oublié quelque chose?Variables de classe PHP avec constantes

erreur Parse: parse error, attend ` ')' » dans

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 
     ) 
    ); 
    .... 
} 
+0

* (sidenote) * Vous ne voulez pas avoir la dépendance sur la constante globale de toute façon. – Gordon

+0

où définissez-vous "DÉPLOIEMENT"? – pleasedontbelong

+0

@Gordon pourquoi pas? @pleasedontbelong vraiment? Quel est le point de votre commentaire. – Lizard

Répondre

7

Vous ne pouvez pas utiliser des variables en classe de définition vars. Initialisez votre tableau à l'intérieur du constructeur à la place:

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 
      ) 
     ); 
    } 
} 
5

La raison est que les 'constantes' peuvent être définies dynamiquement. Leur contenu n'est donc connu qu'au moment de l'exécution et non à la compilation.