2010-12-04 18 views
0

Je continue d'obtenir "Erreur d'analyse: erreur de syntaxe, inattendue". ', En espérant') '"sur la première ligne, j'ai essayé de casser la chaîne, mais ensuite elle ne s'intègre pas correctement . Quelqu'un sait comment trier ça?Erreur d'analyse: erreur de syntaxe

protected $_embedHTML = array('youtube' => '<object width="425" height="350" 
              type="application/x-shockwave-flash" '. 
              'data="http://www.youtube.com/'.$value.'">'. 
              '<param name="movie" value="http://www.youtube.com/'.$value.'"> 
              </param>'. 
              '<!--[if IE]>'. 
              '<embed src="http://www.youtube.com/'.$value.'"'. 
              'type="application/x-shockwave-flash"'. 
              'wmode="transparent" width="425" height="350" />'. 
              '<![endif]-->'. 
              '</object>'); 
+0

Vous utilisez l'opérateur de concanation ('.'). Cela ne fonctionnera pas dans les variables des membres de la classe. Utilisez une fonction de constructeur appropriee a la place. – Lekensteyn

Répondre

3

Vous ne pouvez pas concaténer des données dans une définition de variable de classe de cette manière. La valeur d'initialisation doit être une constante.

Essayez ceci:

protected $_embedHTML; 

function __construct() { 
    $this->_embedHTML = array('youtube' => '<object width="425" height="350" 
     type="application/x-shockwave-flash" '. 
     data="http://www.youtube.com/'.$value.'">'. 
     '<param name="movie" value="http://www.youtube.com/'.$value.'"> 
     </param>'. 
     '<!--[if IE]>'. 
     '<embed src="http://www.youtube.com/'.$value.'"'. 
     'type="application/x-shockwave-flash"'. 
     'wmode="transparent" width="425" height="350" />'. 
     '<![endif]-->'. 
     '</object>'); 
} 

Ou, dépouiller la concaténation et de faire simplement une chaîne multiligne. Je ne sais pas pourquoi vous ne faites pas cela, car il est déjà composé de chaînes multilignes.