[RESOLU] Variable privée dans une class orienté objet

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Variable privée dans une class orienté objet

Re: Variable privée dans une class orienté objet

par Billygbk » 23 avr. 2019, 07:52

Merci à toi pour cette explication clair et précise :)

Re: Variable privée dans une class orienté objet

par Spols » 19 avr. 2019, 13:41

avec ce code ci
class Personne{
private $_nom;
private $prenom ;

public function setNom($nouveauNom){
$this->_nom = $nouveauNom ;
}
public function getNom(){
return $this->_nom ;
}

} ;



$Julien=new Personne () ;

$Julien->nom="Julien" ;//déclare une variable nom dans ta classe donc rien avoir avec _nom 
echo $Julien->nom ; 

$Julien->setNnom("Julien") ;
echo $Julien->_nom ;  //impossible => variable privée


Il faut rester cohérent avec ta nomenclature nom et _nom ce n'est pas la même chose.
de plus les variables privée doivent être remplie via le setter et non pas en direct

Re: Variable privée dans une class orienté objet

par Billygbk » 19 avr. 2019, 09:44

Le Voici, la variable nom est avec un underscore en privée et pourtant elle s'affiche ;


class Personne{
private $_nom;
private $prenom ;

public function setNom($nouveauNom){
$this-> nom = $nouveauNom ;
}
public function getNom(){
return $this-> nom ;
}

} ;



$Julien=new Personne () ;

$Julien->nom="Julien" ;
echo $Julien->nom ;



Voici le même à l'identique, j'ai juste enlever l'underscore à la variable nom :


class Personne{
private $nom;
private $prenom ;

public function setNom($nouveauNom){
$this-> nom = $nouveauNom ;
}
public function getNom(){
return $this-> nom ;
}

} ;






$Julien=new Personne () ;

$Julien->nom="Julien" ;
echo $Julien->nom ;



Et il m'indique que c'est privée et que je n'ai pas l'accès .

Re: Variable privée dans une class orienté objet

par or 1 » 18 avr. 2019, 19:06

on peut avoir le code complet avec _ ?

Variable privée dans une class orienté objet

par Billygbk » 18 avr. 2019, 17:59

Bonjour à tous,

Je viens vers car j'ai un souci au niveau de mes variables.

Je crée une class Personne dans laquelle j'y ajoute une variable $prénom en private .

Class Personne {
private $nom ;
}

Je crée un New Personne :

$Julien= New personne() ;
$Julien->nom="Julien" ;


Ensuite j'essaie d'afficher l'objet $Julien de la sorte :

Écho $Julien->nom ;


La il m'indique que $nom est privé et que je n'y ai pas accès, rien d'anormal.

Le problème est que si je rajoute un underscore à $nom ( qui devient donc $_nom) et que je la laisse en privée, cette fois ci il me l'affiche alors que celle-ci est en privée.

Par avance, merci pour votre aide.