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

JooS Messages postés 2468 Date d'inscription   Statut Membre Dernière intervention   -  
Giorgiolino Messages postés 253 Date d'inscription   Statut Contributeur Dernière intervention   -
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   Statut Membre Dernière intervention   3
 
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 2468 Date d'inscription   Statut Membre Dernière intervention   228
 
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   Statut Contributeur Dernière intervention   52
 
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