[PHP] Les classes, un léger problème !

Fermé
JooS Messages postés 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 - Modifié par JooS le 28/12/2011 à 18:18
Giorgiolino Messages postés 253 Date d'inscription vendredi 15 mai 2009 Statut Contributeur Dernière intervention 2 mars 2015 - 3 janv. 2012 à 14:08
Bonsoir,
Un mal entendu avec les classes ! :)

class Dire {    
    public static $phrase = 'Salut le monde';    

    public static function DirePhrase() {    
            //echo $this->phrase;    
            echo self::$phrase;    
    }    
}    

$bj = new Dire;    
$bj->DirePhrase();    
Dire::DirePhrase();    


Comme ça, ça fonctionne !

Maintenant, si mon premier attribut n'est pas statique, comment je pourrais l'afficher, a travers la méthode biensure ?!

Merci !

Mettez en résolu quand c'est résolu -.- ...
A voir également:

3 réponses

assasin altair Messages postés 4 Date d'inscription lundi 2 janvier 2012 Statut Membre Dernière intervention 2 janvier 2012 3
2 janv. 2012 à 21:09
la solution est de modifier la valeur d'attribut $phrase vous pouvez faire ca avec une affectation simple
$bj->phrase = "Salut le monde"

ou bien a travers une methode
function edit($phrase) {
$this->phrase = $phrase;
}

ou a travers le constructeur

function __construct($phrase) {
$this->phrase = $phrase;
}
$bj = new Dire(" -- Phrase -- ");

mais le problem que ce pose est que vous devez declarer une methode non static pour acceder a une attribut qui n'est pas static
0
JooS Messages postés 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
Modifié par JooS le 3/01/2012 à 13:11
Re ...

Mon but n'est pas de modifier un attribut ou de l'initialiser, le problème posé est, si mon attribut n'était pas statique, comment y accéder indirectement, or, en utilisant une méthode statique !

Je pense que ce n'est pas possible !!!

Merci quand même ! ;)
Mettez en résolu quand c'est résolu -.- ...
0
Giorgiolino Messages postés 253 Date d'inscription vendredi 15 mai 2009 Statut Contributeur Dernière intervention 2 mars 2015 52
Modifié par Giorgiolino le 3/01/2012 à 14:09
Ce n'est effectivement pas possible.

Un attribut non statique n'est disponible que pour des objets, c'est-à-dire des instances d'une classe.

Lorsqu'on est dans une méthode statique on n'est pas dans le contexte d'un objet (par définition).

Ce qui explique l'impossibilité.

Cela dit la question à se poser est : pourquoi voudrait faire cela ?

"La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information"
Albert Einstein
0