Page 1 sur 1

private static sur variable

Posté : 01 août 2012, 11:46
par omelhor
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" ?

Re: private static sur variable

Posté : 01 août 2012, 12:47
par Ryle
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 ;)

Re: private static sur variable

Posté : 02 août 2012, 07:57
par omelhor
merci beaucoup, je viens de comprendre