2010-10-27 6 views
2

c'est le code du livre d'apprentissage.Quel est le sens de «statique» lors de la déclaration d'une fonction

class user { 
    // return if username is valid format 
    public static function validateUsername($username){ 
     return preg_match('/^[A-Z0-9]{2,20}$/i', $username); 
    } 
} 

Je me demande, quelle est la fonction de statique?

il est dommage que le livre que je lis ne pas l'expliquer :(

+1

Note Pédant: C'est une méthode, pas une fonction (je sais qu'il utilise encore le mot-clé 'de function', mais il est une méthode car il est lié à une classe) .. – ircmaxell

Répondre

10

Le résultat final est que vous n'avez pas besoin de créer une instance de la classe pour exécuter la fonction (il y a plus que ça, mais je vais laisser le couvercle manuel les parties):

PHP: Static Keyword - Manual

Dans votre exemple, vous appelez votre fonction comme:

user::validateUsername("someUserName"); 

plutôt que d'avoir à créer une instance, puis en appelant la fonction:

$user = new user(); 
$user->validateUsername("someUserName"); 
+3

Je voterais pour cette réponse, mais cela signifie beaucoup plus que cela. –

+0

@NickLarsen - Les choses reformulées un peu pour le rendre plus clair. –

+0

merci beaucoup pour le lien, c'est tellement expliqué :) – GusDeCooL

0

Les fonctions statiques sont des fonctions appartenant à la classe et non à l'instance d'objet. Ils peuvent être appelés sans instanciation la classe en se référant directement à -

user::validateUsername(...); 

Ou utiliser le mot clé self à l'intérieur de la classe

self::validateUsername(...); 

fonction statique sont des fonctions globales d'une manière. Vous devez les utiliser avec parcimonie, car les dépendances aux fonctions statiques sont plus difficiles à extraire et rendent les tests et la réutilisation plus difficiles.

En savoir plus dans le manuel PHP - the static keyword

Questions connexes