IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Getter en POO, demande d'une confirmation sur un doute


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    SEO
    Inscrit en
    Novembre 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : SEO

    Informations forums :
    Inscription : Novembre 2017
    Messages : 29
    Points : 26
    Points
    26
    Par défaut Getter en POO, demande d'une confirmation sur un doute
    Bonjour,

    J'aurais une question concernant le 'POO'. Quand on est dans une classe, doit t'on utiliser des getter pour qu'une ou plusieurs méthodes puissent avoir accès à la donnée. J'ai vu sur un cours et je pensais que les getters servaient pour qu'on ait accès de l'extérieur à la valeur de la variable.

    J'ai lu les tutos ici et j'ai pas vraiment de réponse à ma question. Voila pourquoi je demande votre avis

    Cordialement

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 119
    Points : 168
    Points
    168
    Par défaut
    Je pensais que les getters servaient pour qu'on ait accès de l'extérieur à la valeur de la variable.
    C'est correct.

    Si les 'proprietes (les variables)' sont 'private' ou 'protected' seuls les methodes (et toutes les methods) de la dite class on accès au proprietes. Aussi on utilise une méthode dite 'guetter', qui elle est public et permet l’accès au proprietes.

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Fondamentalement, les accesseurs (getter et setter) servent à accéder aux variables depuis l'extérieur de la classe. Par exemple, si tu veux qu'une variable de la classe ne soit pas modifiable à l'extérieur, tu peux lui donner un getter public et rendre son setter privé ou protégé (ou ne pas créer de setter du tout)

    Exemple totalement improvisé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    class Utilisateur {
        private $_id;
        private $_nom;
     
    	/** Getter pour l'id */
    	public function getId() {
    		return $this->_id;
    	}
     
    	/** 
    	 * Setter pour l'id 
    	 * L'id n'est pas modifiable par l'extérieur, on fixe le setter en privé
    	 */
    	private function setId($id) {
    		$this->_id = $id;
    	}
     
    	/** Getter pour le nom */
    	public function getNom() {
    		return $this->_nom;
    	}
     
    	/** Setter pour le nom */
    	public function setNom($nom) {
    		$this->_nom = $nom;
    	}
    }
    Si tu as une propriété qui n'est manipulée QUE dans la classe, il n'y a pas besoin d'accesseurs dessus.
    Exemple totalement improvisé de manipulation de tableau. A aucun moment, $data n'est accédé directement depuis l'extérieur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    class Map {
    	// données
    	private $_data = [];
     
    	/**
    	 * Va chercher un élément dans le tableau
    	 */
    	public function getElementByIndex($index) {
    		if (isset($this->_data[$index])) {
    			return $this->_data[$index];
    		} else {
    			return null;
    		}
    	}
     
    	/**
    	 * Ajoute un élément dans le tableau
    	 */
    	public function putElementToIndex($index, $value) {
    		$this->_data[$index] = $value;
    	}
    	/**
    	 * Vide le tableau
    	 */
    	public function clear() {
    		$this->_data= [];
    	}
    }

Discussions similaires

  1. Juste une confirmation sur la propriété Align
    Par Delphi-ne dans le forum Windows Forms
    Réponses: 2
    Dernier message: 30/03/2009, 10h50
  2. Réponses: 2
    Dernier message: 26/01/2007, 11h50
  3. Réponses: 6
    Dernier message: 09/07/2004, 16h07
  4. Réponses: 5
    Dernier message: 20/11/2003, 17h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo