Rechercher : dans
Par :

Fonction static en php

Dernière réponse le 24 sep 2008 à 21:59:39 mousekey, le 10 oct 2006 à 03:34:15 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « fonction static en php » dans :
[PHP] Fonction mail() VoirLa fonction mail() est bloquée chez certains des hébergeurs gratuits pour des raisons de sécurité (afin d'éviter le spam notamment), l'adresse ip de la machine qui a demandé le script sera alors indiquée dans le header 'X-MM-Mail-From-IP'. renseignez...
PHP - Nettoyer une chaîne de caractères VoirVoici une fonction en PHP qui peut être assez pratique, surtout quand on fait de l'URL Rewriting. Cette fonction permet de transformer les caractères de n'importe quelle chaîne de caractères en chaîne non accentuée, en enlevant les caractères...
PHP - Mail et fonctions réseau VoirPHP étant un langage consacré au Web, il possède bien évidemment des fonctions lui permettant de communiquer avec le "monde extérieur" à l'aide de fonctions standards. Le service le plus utilisé sur Internet étant la messagerie électronique, il est...
PHP - Les fonctions VoirLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs parties du...
PHP - Les classes VoirLa notion de classe Php3 intègre un soupçon de caractéristiques empruntées aux langages orientés objet, c'est-à-dire la possibilité d'utiliser des objets, entités regroupant des données et des fonctions au sein d'une structure et rendant la...

1

Squalou, le 10 oct 2006 à 10:32:42

Salut,

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

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

@+

Répondre à Squalou

2

Fabien, le 10 avr 2007 à 13:01:57
  • +2

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.

Répondre à Fabien

3

Rien, le 7 mai 2008 à 12:26:25

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???

Répondre à Rien

4

Xan, le 4 jun 2008 à 16:39:34

Le mot-clé "static" n'est utile que dans un contexte objet.

Dans ton exemple, il n'a absolument aucune utilité.

Répondre à Xan

5

 Steph, le 24 sep 2008 à 21:59:39

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 ?

Répondre à Steph