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 :

Parse error: syntax error, unexpected '[', expecting ',' or ';'


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 106
    Par défaut Parse error: syntax error, unexpected '[', expecting ',' or ';'
    Bonjour à tous,

    Je cherche a créer ma première class. Je définis donc mes attributs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    class myMySQLi
    {
        // Attributs
        private $database;
     
        //
        // Méthodes
        //
        public function __construct($database['host'], $database['login'], $database['password'], $database['name'])    
        {
            $this->database['host'] = $database['host'];
            $this->database['login'] = $database['login']
            $this->database['password'] = $database['password'];
            $this->database['name'] = $database['name'];

    PHP me retourne cette erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Parse error:  syntax error, unexpected '[', expecting ')' in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\class_myMySQLi\class_myMySQLi.php on line 35
    la ligne 35 correspondant à public function __construct. Je suis passé par la FAQ ici et ici avant de vous solliciter mais je n'ai pas trouvé mon bonheur.

    Merci d'avance pour votre aide

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 619
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 619
    Par défaut
    les attributs de fonction doivent être des simples variables comme ça par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        public function __construct($host, $login, $password, $name)

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 106
    Par défaut
    Merci mathieu.

    j'ai donc modifier un peu mon code :

    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
    class myMySQLi
    {
        // Attributs
        private $database;
     
        $database['host'] = $hostname;
        $database['port'] = $port;
        $database['name'] = $name;
        $database['tableprefix'] = $tableprefix;
        $database['login'] = $login;
        $database['password'] = $password;
     
        public function __construct($hostname, $login, $password, $name)
        {
            $this->hostname = $hostname;
            $this->login = $login;
            $this->password = $password;
            $this->name = $name;
    J'ai une autre erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Parse error:  syntax error, unexpected T_VARIABLE, expecting T_FUNCTION in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\class_myMySQLi\class_myMySQLi.php on line 21
    Il me semble avoir lu qu'on pouvait utiliser les tableaux dans une class, non ?

  4. #4
    Membre Expert
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Par défaut
    salut, un point virgule manque
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $this->database['host'] = $database['host'];
            $this->database['login'] = $database['login']
            $this->database['password'] = $database['password'];

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 106
    Par défaut
    Citation Envoyé par thes32 Voir le message
    salut, un point virgule manque
    Code php :
    $this->database['host'] = $database['host'];
    $this->database['login'] = $database['login'] $this->database['password'] = $database['password'];
    Bien vu

  6. #6
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 106
    Par défaut
    Bon j'avance un peu, avec ce code ça fonctionne sauf que les variables sont en dur dans la class.

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    class myMySQLi
    {
        // Attributs
        private $database = array(
            'host' => '',
            'port' => '',
            'name' => '',
            'tableprefix' => '',
            'login' => '',
            'password' => ''
        );
        //
        // Constantes
        //
     
        //
        // Méthodes
        //
        public function __construct()
        {
            $this->database['host'];
            $this->database['login'];
            $this->database['password'];
            $this->database['name'];
     
            $mysqli = new mysqli($this->database['host'], $this->database['login'], $this->database['password'], $this->database['name']);
            if (mysqli_connect_errno()) {
                printf("Echec de la connexion: %s\n", mysqli_connect_error());
                exit();
            }
     
        }

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 01/02/2011, 17h32
  2. Réponses: 5
    Dernier message: 22/09/2010, 12h04
  3. Réponses: 5
    Dernier message: 05/04/2009, 00h07
  4. Réponses: 3
    Dernier message: 27/12/2008, 11h17
  5. Réponses: 2
    Dernier message: 26/06/2007, 23h49

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