Maison >développement back-end >Problème PHP >Quand utiliser des méthodes statiques en php

Quand utiliser des méthodes statiques en php

angryTom
angryTomoriginal
2019-10-19 13:38:095245parcourir

Quand utiliser des méthodes statiques en php

Quand utiliser les méthodes statiques en php

Méthodes statiques :

Les instances génèrent de la mémoire dès le début de l'exécution du programme, elle peut donc être appelée directement et l'efficacité sera beaucoup plus élevée. Cependant, la mémoire statique est limitée. S'il y a trop d'instances, le programme ne peut pas être démarré directement, et le programme ne peut pas être démarré directement. la mémoire statique sera résidente.

Méthodes non statiques :

Les méthodes d'instance commencent à générer de la mémoire et demandent de la mémoire dispersée lors de l'appel, de sorte que l'efficacité sera beaucoup plus lente. être libérés lorsqu'ils sont épuisés.

Différences :

1. Les méthodes statiques n'utilisent pas de nouvelles, ce qui est facile à utiliser.

2. Statique est rapide et efficace, car la mémoire est générée par l'instance lorsque le programme est en cours d'exécution, et elle est toujours là une fois utilisée, mais elle n'est pas libérée.

3. Non statique génère de la mémoire lorsqu'il est appelé et la libère après utilisation.

Les méthodes statiques sont utilisées dans les classes d'outils générales
Par exemple :

class Helper{
    public static function fun1(){}
    public static function fun2(){}
}

Si c'est pour un objet de la même classe, qu'est-ce que cela fait méthode faire ? Les choses sont les mêmes et n'ont rien à voir avec l'objet lui-même. Généralement, cette méthode peut être définie comme une méthode statique.
Par exemple, si je souhaite obtenir l'adresse IP du client, cette méthode n'a généralement rien à voir avec la classe de logique métier, alors je peux définir une classe d'outils avec une méthode : getClientIP()

class Helper{
public static function getClientIP(){
    $ip = $_SERVER["HTTP_X_CLUSTER_CLIENT_IP"];
    if (strlen($ip) <= 0) {
        $ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
    }
    if (strlen($ip) <= 0) {
        $ip = $_SERVER["HTTP_CLIENT_IP"];
    }
    if (strlen($ip) <= 0) {
        $ip = $_SERVER["REMOTE_ADDR"];
    }
    return $ip;
}
}

Plus Pour des connaissances liées à PHP, veuillez visiter le Site Web PHP chinois !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn