Fonction static en php

Fermé
mousekey - 10 oct. 2006 à 03:34
 Steph - 24 sept. 2008 à 21:59
Bonjour,
j'aimerai savoir si quelqu'un peut me dire l'utilité du mot réservé static dans cette synthaxe...

static function contact( $args ) {


merci
mousekey
A voir également:

5 réponses

Si le sens de 'static' pour une fonction est le même qu'en java (et je ne vois comment il pourrait en être autrement), il signifie que cette fonction est appelée par la classe et non par une instance de la classe. Je m'explique :

Tu as une classe 'Voiture' que tu instancies en faisant '$maVoiture = new Voiture();'. Cela signifie que tu créés un objet de type 'Voiture'.
Au sein de la classe 'Voiture', si tu as déclaré une fonction 'demarre' normale, tu l'appeleras la façon suivante : "$maVoiture.demarre()". Jusque là, rien de nouveau.

Une fonction 'create' static, elle, peut (doit) être appelée de la manière suivante : 'Voiture::create();' : elle porte sur la classe elle-même (pas sur une instance de la classe 'Voiture'). Cela permet de créer des fonctions ne nécessitant pas d'instancier une classe et, donc, ayant une portée plus globale.

Attention, bien utiliser ce concept nécessite d'en avoir bien compris la teneur et l'utilité. Ce n'est pas si évident.
22
Oui et non,

car la il veux utiliser une variable static,

mais comme tu reinitialises ta variable a 0 a chaque appel l'increment ne sert a rien.

apres oui on parlait de method de classe en static

et ton code c un joyeux bordel :)

les déclarations en début de fonctions c mieux

apres de mettre un global $a et un static $a c assez space tu veux quel conserve la meme valeur a chaque appel (static) et qu'il l utilise la valeur de celle général au programme entier ( global )

hmmm

tu te spécialises en usine a gaz ?
2
le mot-clé "static" n'est utile que dans un contexte objet.

Dans ton exemple, il n'a absolument aucune utilité.
-1
Squalou Messages postés 29 Date d'inscription vendredi 6 octobre 2006 Statut Membre Dernière intervention 29 novembre 2006 3
10 oct. 2006 à 10:32
Salut,

Voici un p'tit lien qui t'en dira un peu plus sur la fonction static :

https://www.php.net/manual/fr/language.variables.scope.php

@+
-2

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour,

Dreamweaver ne detecte pas static puisqu'il ne change pas de couleur comme avec global, et static ne semble effectivement pas être reconnu par php, bien qu'il n'y ait pas de messaage d'erreur à ce sujet!

<?php
function a(){
global $a;
$a=0;
echo $a;
static $a;
$a++;
}
a();
a();
?>

retourne "00" et non "01"! : kesako???
-5