[PHP] L'opérateur de résolution de portée (::)

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par dorian53, 21 Janvier 2009.

  1. dorian53

    dorian53 WRInaute passionné

    Inscrit:
    10 Avril 2005
    Messages:
    2 240
    J'aime reçus:
    0
    Bonjour,

    Sachant que PHP 5.3.0 n'est encore qu'à la version Alpha, existe-t-il une solution pour réaliser cette opération avec une version de PHP inférieure.

    Merci

    Code:
    <?php
    class MyClass {
        const CONST_VALUE = 'Une valeur constante';
    }
    
    $classname = 'MyClass';
    echo $classname::CONST_VALUE; // Depuis PHP 5.3.0
    ?>
    http://fr.php.net/manual/fr/language.oo ... otayim.php
     
  2. YoyoS

    YoyoS WRInaute accro

    Inscrit:
    14 Septembre 2006
    Messages:
    4 026
    J'aime reçus:
    0
    Je crois pas, déclare en public static sinon.
     
  3. Bool

    Bool WRInaute passionné

    Inscrit:
    26 Février 2004
    Messages:
    1 598
    J'aime reçus:
    0
    et {$classname}::CONST_VALUE, ça donne un parse error ?
     
  4. BlackPot

    BlackPot Nouveau WRInaute

    Inscrit:
    20 Août 2008
    Messages:
    18
    J'aime reçus:
    0
    Code:
    <?php
    class MyClass {
        const CONST_VALUE = 'Une valeur constante';
    }
    
    $cste = MyClass::CONST_VALUE;
    
    echo $cste;
    
    ?>
    Tu peux essayer ça mais je ne sais pas si cela correspond à ta demande niveau instanciation (testé PHP 5.2.5)
     
  5. dorian53

    dorian53 WRInaute passionné

    Inscrit:
    10 Avril 2005
    Messages:
    2 240
    J'aime reçus:
    0
    En effet, ça ne passe pas.


    Non le nom de la classe doit être contenu dans une variable.

    Merci tout de même.
     
  6. dorian53

    dorian53 WRInaute passionné

    Inscrit:
    10 Avril 2005
    Messages:
    2 240
    J'aime reçus:
    0
    Réponse.

    Code:
    class MyClass {
        const CONST_VALUE = 'Une valeur constante';
    }
    
    $classname = 'MyClass';
    
    eval("echo ".$classname."::CONST_VALUE;");
     
  7. Bool

    Bool WRInaute passionné

    Inscrit:
    26 Février 2004
    Messages:
    1 598
    J'aime reçus:
    0
    ouais enfin à coup d'eval c'est plutôt crade comme approche ;)