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 :

PHP (5) Classe Problème


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2007
    Messages : 1
    Points : 2
    Points
    2
    Par défaut PHP (5) Classe Problème
    Je suis en train de créer un nouveau site avec PHP 5 et je bloque sur une erreur que je ne comprend pas. J'ai défini un classe avec deux variables privées que je référence dans mes fonctions (méthodes?) et l'une d'elle ($Session) génère une notice suivi d'une erreur fatale lorsque je lui assigne un valeur ($this->$Session = md5(time()): (voir fichier joint, dernière fonction, ligne 141).

    Notice: Undefined variable: Session in C:\PHP\Classes\mySession.class.php on line 141
    Fatal error: Cannot access empty property in C:\PHP\Classes\mySession.class.php on line 141

    J'ai placé les messages d'erreur dans le fichier, là ou ils se produisent! Le programme compile OK, mais se plante à l'exécution.

    Merci,
    RD
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    la bonne syntaxe pour référencer ton membre privé est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->Session = md5(time())
    Au passage, il est préférable de laisser l'initiale en majuscule aux classes, et de tout metttre en minuscule pour les variables et les membres de classes. Enfin, pour tes commentaires en tête de méthode, il serait intéressant d'utiliser le formalisme de phpDoc, et de bénéficier ainsi de la génération automatique de documentation.

  3. #3
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Je dirais même plus, que la convention camelCase est un bon choix(pour moi hein), fais attention à tes variables privé il y en a une en majuscule ($ID).
    De plus une façon de reconnaître une variable privé est de lui mettre un 'underscore'

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    private	$_id			= NULL;
     
    private	$_session	= NULL;
    Tu nous dis que tu veux développer une classe en PHP5, or ton commentaire et la construction de ta classe suggère PHP4.
    En PHP5 la constructeur de la classe ne porte plus le nom de la classe, mais bien le nom réservé de __construct(), ainsi
    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
     
    class mySession {
     
     
    //
     
    	/*************************\
     
    	 *                       *
     
    	 *  Constructor          *
     
    	 *                       *
     
    	\*************************/
     
    //
     
    	function mySession () {
     
     
    		}
    }
    devrais être

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    class MySession {
     
    	/**
    	* Constructor
            */
     
    	function __construct () {
     
     
    		}
    }

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

Discussions similaires

  1. Inclusion de classes / problème de déclaration
    Par scal-80 dans le forum C++
    Réponses: 5
    Dernier message: 21/06/2006, 16h28
  2. [ClassLoader] Chargement dynamique d'une classe -> problème avec packages !
    Par ymerej dans le forum API standards et tierces
    Réponses: 9
    Dernier message: 31/05/2006, 21h37
  3. [MySQL] [PHP, MySQL, Javascript] Problème Variables
    Par marie4449 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 29/05/2006, 11h57
  4. [POO] [PHP 5 CLASSES]Source à part?
    Par Jean_Benoit dans le forum Langage
    Réponses: 3
    Dernier message: 20/10/2005, 11h50
  5. Réponses: 22
    Dernier message: 05/07/2005, 00h04

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