[RESOLU] private static sur variable

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] private static sur variable

Re: private static sur variable

par omelhor » 02 août 2012, 07:57

merci beaucoup, je viens de comprendre

Re: private static sur variable

par Ryle » 01 août 2012, 12:47

L'intérêt du mot clé static dans cet exemple est de pouvoir accéder à ton tableau/variable sans avoir besoin d'instancier la classe.

Tu peux dans ce cas récupérer le tableau $data en faisant un simple "Machin::data". Si le tableau n'est pas statique, pour y accéder, tu dois d'abord créer une instance de la classe Machin avec un "$bidule = new Machin()" et tu pourras alors faire "$bidule->data" pour accéder à la même information (ce dernier laissant supposer que "$bidule->data" ne retournerait pas la même information que l'instance "$truc->data").

En gros, il te permet d'accéder à un attribut ou à une méthode propre à ta classe, mais qui ne nécessite pas nécessairement d'avoir une instance particulière de ta classe. Supposons par exemple que j'ai une classe "Voiture" et que je souhaite stocker le nom de la table en base de données dans un attribut de cette classe. Je peux alors faire appel à Voiture::nomTable pour le récupérer dans une requête ou autre, car ce sera toujours le même que ma voiture soit une Ferrari ou un Mini-bus Volkswagen à rideau, alors que Ferrari->NbDeChevaux n'aura sans doute pas le même effet que Minibus->NbDeChevaux ;)

private static sur variable

par omelhor » 01 août 2012, 11:46

bonjour,

Je me posais l'utilité de l'utisation d'un variable static dans une classe, exemple :

avec static

Code : Tout sélectionner

class Machin{ private $mobiles = null; private static $data= array( .... $this->mobiles = self::$data }
sans static

Code : Tout sélectionner

class Machin{ private $mobiles = null; private $data= array( .... $this->mobiles = $this->data }
Quel est l'intêret d'utilise du "static" ?