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

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


dorian53
WRInaute accro
WRInaute accro
 
Messages: 1898
Inscription: Dim Avr 10, 2005 16:56

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

Message le Mer Jan 21, 2009 17:33

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: Tout sélectionner
<?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


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3062
Inscription: Jeu Sep 14, 2006 4:53

Message le Mer Jan 21, 2009 17:40

Je crois pas, déclare en public static sinon.


Bool
WRInaute accro
WRInaute accro
 
Messages: 1290
Inscription: Jeu Fév 26, 2004 15:59

Message le Mer Jan 21, 2009 18:09

et {$classname}::CONST_VALUE, ça donne un parse error ?

BlackPot
Nouveau WRInaute
 
Messages: 18
Inscription: Mer Aoû 20, 2008 21:37

Message le Mer Jan 21, 2009 18:54

Code: Tout sélectionner
<?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)


dorian53
WRInaute accro
WRInaute accro
 
Messages: 1898
Inscription: Dim Avr 10, 2005 16:56

Message le Jeu Jan 22, 2009 9:54

Bool a écrit:et {$classname}::CONST_VALUE, ça donne un parse error ?

En effet, ça ne passe pas.


BlackPot a écrit:
Code: Tout sélectionner
<?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)

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

Merci tout de même.


dorian53
WRInaute accro
WRInaute accro
 
Messages: 1898
Inscription: Dim Avr 10, 2005 16:56

Message le Jeu Jan 22, 2009 10:13

Réponse.

Code: Tout sélectionner
class MyClass {
    const CONST_VALUE = 'Une valeur constante';
}

$classname = 'MyClass';

eval("echo ".$classname."::CONST_VALUE;");


Bool
WRInaute accro
WRInaute accro
 
Messages: 1290
Inscription: Jeu Fév 26, 2004 15:59

Message le Jeu Jan 22, 2009 19:12

ouais enfin à coup d'eval c'est plutôt crade comme approche ;)


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités