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 :

Erreur que je ne comprends pas dans une classe


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 617
    Points : 823
    Points
    823
    Par défaut Erreur que je ne comprends pas dans une classe
    Bonjour,
    Le code ci-dessous me provoque une erreur
    Fatal error: Uncaught Error: Using $this when not in object context ... on line 18
    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
    namespace Languages;
     
    class Languages
    {
     
    	public static function setUserLanguage()
    	{
    		// First priority: User choose a new Language
    		if (isset($_GET['language']))
    			return $_GET['language'];
    		// 2nd priority: Language were already selected
    		elseif (isset($_SESSION['language']))
    			return $_SESSION['language'];
    		// 3rd priority: A language were already selected in a previous session
    		elseif (isset($_COOKIE['language']))
    			return $_COOKIE['language'];
    		else
    			return $this->getMainBrowserLanguage();
     
    	}
     
    	public static function getMainBrowserLanguage()
    	{
    		return \Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']);
    	}
     
    	/*
    	 handleCookieLanguage save selected language in cookie
    	 if days is <0 cookie is deleted
    	 if days = 0 previous cookie is held
    	 if days >0 cookie is overwrite
    	 */
    	public static function handleCookieLanguage($days)
    	{
    		$holdTime *= 24*3600;
    		if ($days <0)
    			unset($_COOKIE['language']);
    		elseif ($days > 0)
    			setcookie('language',$this->setUserLanguage(),$holdTime);
    	}
    }

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 617
    Points : 823
    Points
    823
    Par défaut
    C'est bon, j'ai trouvé la réponse ici.
    J'ai remplacé à l'intérieur de la classe $this-> par self::.
    Désolé pour le dérangement.

  3. #3
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 905
    Points : 6 694
    Points
    6 694
    Par défaut
    Dés lors que tu définis une méthode comme static dans une classe, celle-ci ne se rapporte plus à une instance de la classe en particulier mais à la classe elle-même. Donc pour y faire appel dans la classe elle-même on utilise pas $this->nomDeLaMethode() mais self::nomDeLaMethode().

  4. #4
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 617
    Points : 823
    Points
    823
    Par défaut
    Merci! C'est ce que j'ai compris en lisant la doc PHP. Voir mon message qui a du croiser le tien. C'est le mot objet qui m'a mis la puce à l'oreille.

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

Discussions similaires

  1. Une erreur que je ne comprends pas dans une petite fonction JS
    Par nouby dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 02/06/2023, 15h46
  2. une erreur que je ne comprend pas
    Par shyx21 dans le forum C#
    Réponses: 3
    Dernier message: 02/04/2008, 18h25
  3. Une erreur que je ne comprend pas
    Par Macss dans le forum VBA Access
    Réponses: 2
    Dernier message: 01/12/2007, 19h44
  4. [Tableaux] Une erreur que je ne comprend pas
    Par bibom dans le forum Langage
    Réponses: 2
    Dernier message: 01/08/2006, 18h47
  5. [PostGreSQL] une erreur que je ne comprends pas
    Par flo78 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 02/02/2006, 10h18

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