[PHP] Les classes, un léger problème !
                    
        
     
             
                    JooS
    
        
    
                    Messages postés
            
                
     
             
            2705
        
            
                                    Statut
            Membre
                    
                -
                                     
Giorgiolino Messages postés 270 Statut Contributeur -
        Giorgiolino Messages postés 270 Statut Contributeur -
        Bonsoir,     
Un mal entendu avec les classes ! :)
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 -.- ...
                
            
                
    
    
    
        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:         
- [PHP] Les classes, un léger problème !
- Windows leger - Télécharger - Systèmes d'exploitation
- Easy php - Télécharger - Divers Web & Internet
- Ordinateur portable leger - Guide
- Expert php pinterest - Télécharger - Langages
- Php alert ✓ - Forum PHP
3 réponses
                        
                    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
    
                $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
                        
                    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 -.- ...
    
                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 -.- ...
                        
                    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
    
                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
