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 :

Using $this when not in object context dans une méthode de ma classe


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 23
    Par défaut Using $this when not in object context dans une méthode de ma classe
    Bonjour,
    J'ai un problème dans une de mes classes.
    Tout d'abord, voici son 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
    <?php
    class Maintenance
    {
    	protected $_cheminVersFichierMaintenance;
     
    	[...]
     
    	public function timestampFinMaintenance()
    	{
    		$contenuFichierMaintenance = file($this->_cheminVersFichierMaintenance);
     
    		return (@$contenuFichierMaintenance[1] != 0) ? ($contenuFichierMaintenance[1]) : 'Date inconnue';
    	}
    }
    ?>


    Et il se trouve que j'ai l'erreur :
    Fatal error: Using $this when not in object context in C:\...\maintenance.class.php on line 35, ligne qui correspond à la dixième du code que j'ai posté ( $contenuFichierMaintenance = file($this->_cheminVersFichierMaintenance);).
    Je ne comprends vraiment pas pourquoi j'ai cette erreur, car j'utilise exactement la même ligne que celle qui produit l'erreur dans une autre fonction, et ça marche très bien.
    Je précise que ma classe a bien un constructeur.

    Merci de votre aide.

  2. #2
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Salut,

    En premier essai, je dirais une erreur dans l'appareillage { et } => ta classe se terminerait juste avant la fonction.

  3. #3
    Membre averti
    Inscrit en
    Janvier 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 23
    Par défaut
    Apparemment non.
    Je donne tout de même le code complet de ma classe, au cas où.

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    <?php
    class Maintenance
    {
    	protected $_cheminVersFichierMaintenance;
     
    	public function __construct($cheminVersFichierMaintenance = 'maintenance.txt')
    	{
    		if(!is_file($cheminVersFichierMaintenance)) //si le fichier indiqué n'existe pas
    		{
    			//On le crée
    			$fichier = fopen($cheminVersFichierMaintenance, 'w+');
    			fclose($fichier);
    		}
    		$this->_cheminVersFichierMaintenance = $cheminVersFichierMaintenance;
    	}
     
    	public function mettreEnMaintenance($timestampExpiration = 0)
    	{
    		$fichier = fopen($this->_cheminVersFichierMaintenance, 'w+');
    		fputs($fichier, "en maintenance \n$timestampExpiration");
    		fclose($fichier);
    	}
     
    	public function siteEnMaintenance()
    	{
    		$contenuFichierMaintenance = file($this->_cheminVersFichierMaintenance);
    		if($contenuFichierMaintenance[0] != 'en maintenance')
    			echo 'Contenu fichier : <b>'.$contenuFichierMaintenance[0]."</b> , Chaine qui à qui elle est égale : <b>en maintenance</b> non ?";
     
    		return ($contenuFichierMaintenance[0] == 'en maintenance');
    	}
     
    	public function timestampFinMaintenance()
    	{
    		$contenuFichierMaintenance = file($this->_cheminVersFichierMaintenance);
     
    		return (@$contenuFichierMaintenance[1] != 0) ? ($contenuFichierMaintenance[1]) : 'Date inconnue';
    	}
     
     
    }

Discussions similaires

  1. NoClassDefFound pour une inner classe dans une méthode de la classe
    Par joel.drigo dans le forum Général Java
    Réponses: 4
    Dernier message: 19/07/2013, 14h40
  2. [POO] Using $this when not in object context
    Par rugueux dans le forum Langage
    Réponses: 4
    Dernier message: 26/09/2011, 14h49
  3. Using $this when not in object context
    Par kate59 dans le forum Langage
    Réponses: 6
    Dernier message: 02/09/2010, 13h54
  4. [PHP 5.0] [POO] Using $this when not in object context
    Par Gaetch dans le forum Langage
    Réponses: 10
    Dernier message: 06/03/2010, 11h35
  5. Fatal error: Using $this when not in object context
    Par lavande dans le forum Langage
    Réponses: 2
    Dernier message: 02/10/2008, 20h17

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