IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Tableaux] Erreur syntaxique sur constructeur, PHP5


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 15
    Points : 13
    Points
    13
    Par défaut [Tableaux] Erreur syntaxique sur constructeur, PHP5
    Bonjour à tous,

    Sur un constructeur de classe, j'obtiens l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Parse error: syntax error, unexpected T_OBJECT_OPERATOR, expecting T_PAAMAYIM_NEKUDOTAYIM in /home4/b/b43ruedesplages/www/inc/rss_item.inc.php5 on line 18
    Je développe sur mac (et serveur sous linux), il est possible que les numéros de lignes ne correspondent pas tout à fait, mais l'erreur semble venir du constructeur, qui pourtant me semble correct. Voici les 20 premières lignes de ma classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    <?php 
     
    class RssItem {
     
    private $rss_title = null;
    private $rss_link = null;
    private $rss_description = null;
    private $dc_title = null; // titre de l'ouvrage
    private $dc_creator = null;  // auteur de l'ouvrage
    private $dc_date = null; //date de publication
    private $dc_description = null;
    private $dc_language = null; // sous la forme W3C : fr-FR ou en 
    private $dc_publisher = null; //editeur de l'ouvrage
    private $dc_rights = null;
    private $to = "frederic@43ruedesplages.net";
    private $allArgs = null;
     
    public function __construct($rss_title, $rss_link, $rss_description, $rss_language) {
     
    $this->allArgs = array("RssTitle"=>null, "RssLink"=>null, "RssDescription"=>null, "DcLanguage"=>null, "DcCreator"=>null,  "DcPublisher"=>null, "DcRights"=>null, "DcDate"=>null);
    try { ...
    A priori j'ai pas besoin d'un "::" vu que je n'ai pas de méthodes statiques et que l'erreur semble concerner le constructeur.
    Pour info je n'ai pas de cache PHP sur nuxit, et le source est à chaque fois à jour. L'erreur proviendrait t'elle du tableau?


    A plus et bon week-end,

    Frédéric

  2. #2
    Membre habitué
    Inscrit en
    Février 2005
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 192
    Points : 198
    Points
    198
    Par défaut
    Salut,

    essaie ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    class RssItem
    {
      private var $rss_title;
      ....
      private var $allArgs = array();
     
      function __construct($rss_title, $rss_link, $rss_description, $rss_language)
      {
        try {...
    Ça évite juste d'avoir à déclarer ton tableau dans le constructeur.
    Après tu pourras renseigner les variables de ton tableau comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $this->allArgs['rss_title'] = $rss_title;
    Ceci dit pour ton erreur elle doit arriver plus loin, la syntaxe me semble bonne jusque là, pour en être certain, tu peux commenter le reste de ton constructeur, voir si ça génère encore une erreur.

    a+

    PS: sinon tu dois aussi pouvoir coller "array("RssTitle"=>null, "RssLink"=>null, "RssDescription"=>null, "DcLanguage"=>null, "DcCreator"=>null, "DcPublisher"=>null, "DcRights"=>null, "DcDate"=>null);" dans la déclaration du membre de la classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    class rssItem
    {
    ...
      private var allArgs = array("RssTitle"=>null, "RssLink"=>null, "RssDescription"=>null, "DcLanguage"=>null, "DcCreator"=>null,  "DcPublisher"=>null, "DcRights"=>null, "DcDate"=>null);
    ...
    Mais l'intérêt me semble limité, puisque les éléments du tableau seront de toute manière créé à la volée lorsque tu assigneras des valeurs au tableau.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 15
    Points : 13
    Points
    13
    Par défaut RE : Erreur syntaxique ...
    Salut,

    Merci pour ta réponse.
    Le problème est résolu :
    - d'une manière un peu étrange à mon avis. J'ai lancé l'analyse du script depuis un fichier appelant et une instanciation de la classe en question, et apparemment ça lui aurait fait du bien de changer de contexte?!

    Pour le tableau : c'est en fait une "variable préremplie" que j'importe dans le script appelant, que je remplis puis que je renvoie. J'appelle ensuite les setters dynamiquement avec un eval du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public function setAll($allArgs = array())
    {
     
    foreach($allArgs as $args => $valeur)
    {
    eval("if (false === ($return = $this->set".$args."(".$valeur."))) return false;") ;
    }
    return
    true;
    }

    ça m'intéresse donc de le laisser dans le constructeur. Sauf si il y a vraiment une contre-indication?

    Si quelqu'un connait la vraie solution du problème syntaxique, je serais vraiment curieux de la connaître.

    A plus,
    Frédéric

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur bizarre sur les tableaux
    Par elisabeta dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 27/08/2012, 18h33
  2. [Tableaux] Erreur sur évènement onmouseover
    Par pat06 dans le forum Langage
    Réponses: 25
    Dernier message: 17/10/2007, 18h05
  3. [Tableaux] erreur suite passage php4 à php5
    Par taka10 dans le forum Langage
    Réponses: 1
    Dernier message: 22/02/2007, 16h43
  4. [Tableaux] Plusieurs constructeurs php5
    Par maximenet dans le forum Langage
    Réponses: 11
    Dernier message: 19/07/2006, 12h08
  5. [VB6] Erreur 9 sur redim preserve
    Par tomnie dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 22/10/2002, 17h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo