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 :

équivalent get_called_class() en PHP 5.2 ?


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 70
    Points : 53
    Points
    53
    Par défaut équivalent get_called_class() en PHP 5.2 ?
    Bonjour,

    J'apprends le PHP depuis 2 jours histoire de passer le temps et de peut être faire un site.

    Je suis donc en train de lire un tuto de Rossolini qui provient de ce site.
    Il utilise la fonction get_called_class() et precise que ca ne marche qu avec PHP 5.3.

    Comment fait on avec 5.3 ?

    le 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
    19
    20
    21
    22
    23
     
    <?php
    abstract class Controller_Template
    {
        protected $selfModel;
        protected static $instance;
        public static $db;
     
        protected function __construct()
        {
        }
     
        public static function getInstance()
        {
            $class = get_called_class();
            if (!$class::$instance)
            {
                $class::$instance = new $class();
                return $class::$instance;
            }
        }
    }
    ?>

  2. #2
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 70
    Points : 53
    Points
    53
    Par défaut
    J'ai contourné le problème en répétant le code de la fonction sur toutes les classes, mais je voudrais bien connaitre la façon d'écrire une telle fonction de classe dans la classe abstraite !

    Merci d'avance

  3. #3
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 355
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 355
    Points : 15 701
    Points
    15 701
    Par défaut
    la fonctionnalité du "Late Static Binding" a seulement été ajoutée à partir de PHP 5.3 :
    http://php.net/language.oop5.late-static-bindings

    donc avec PHP 5.2, il faudra que tu essayes les "bricolages" proposés sur la page de la fonction : http://php.net/get_called_class

Discussions similaires

  1. équivalent à authorisation_basic en php
    Par Sh4dow49 dans le forum Web
    Réponses: 5
    Dernier message: 10/09/2008, 14h46
  2. [PHP-JS] équivalent charAt en php
    Par djazz dans le forum Langage
    Réponses: 5
    Dernier message: 31/07/2007, 18h07
  3. [AJAX] Encodage url équivalent urlencode() de php
    Par webrider dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 22/03/2007, 12h03
  4. [PHP-JS] Équivalent thread en PHP
    Par hiko-seijuro dans le forum Langage
    Réponses: 18
    Dernier message: 20/08/2006, 14h06
  5. [Débutant] équivalent du include() php
    Par R3iTt0R dans le forum ASP
    Réponses: 5
    Dernier message: 07/07/2004, 11h46

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