A voir également:
- Fonction static php
- Fonction si et - Guide
- Easy php - Télécharger - Divers Web & Internet
- Fonction moyenne excel - Guide
- Fonction somme excel - Guide
- Fonction filtre excel n'existe pas - Forum Excel
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.
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.
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 ?
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 ?
le mot-clé "static" n'est utile que dans un contexte objet.
Dans ton exemple, il n'a absolument aucune utilité.
Dans ton exemple, il n'a absolument aucune utilité.
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
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
@+
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
@+
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???
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???