Maison  >  Article  >  développement back-end  >  Quelles sont les différences entre les appels statiques et les appels instanciés de classes PHP ?

Quelles sont les différences entre les appels statiques et les appels instanciés de classes PHP ?

烟雨青岚
烟雨青岚original
2020-06-30 15:58:383401parcourir

Les différences sont : 1. Les méthodes statiques génèrent de la mémoire lorsque le programme démarre et les méthodes d'instance génèrent de la mémoire pendant l'exécution du programme ; 2. Les méthodes statiques peuvent être appelées directement et les méthodes d'instance doivent d'abord générer une instance, puis appelez la méthode via l'instance 3. La mémoire statique est continue et les instances s'appliquent à un espace discret, elle n'est donc pas aussi rapide que les méthodes statiques et la mémoire statique est limitée.

Quelles sont les différences entre les appels statiques et les appels instanciés de classes PHP ?

Il n'y a qu'une seule méthode statique, peu importe le nombre de fois que vous l'appelez, elle est partagée. Il n'y a pas de concept d'objet . , il ne peut donc pas être utilisé de manière statique. Utilisez $this pour appeler la méthode. Si vous devez appeler, vous ne pouvez instancier que votre propre classe

L'instanciation est différente. .

Utilisons un exemple pour comprendre

<?php
Error_reporting(E_ALL|E_STRICT);
 
class A{
    
    public function bar(){
        echo &#39;bar&#39;.PHP_EOL;
    }
    public static function foo(){
        echo &#39;foo&#39;.PHP_EOL;
    }
}
 
A::bar();//会报错
A::foo();//正确
$obj = new A();
$obj -> foo();//正确
/* 
  bar()是一个非静态方法,应该由对象来调用,但用静态来调用此方法也可以执行,而严格状态下,此方法会执行,同时报错, 
  Strict Standards: Non-static method Human::easyeat() should not be called statically in........
  但是实例化的类是可以调用静态方法的。
*/
rrree

Faites un bref résumé :

La plus grande différence est la mémoire.

Les méthodes statiques génèrent de la mémoire au démarrage du programme, les méthodes d'instance génèrent de la mémoire pendant l'exécution du programme,

Donc les méthodes statiques peuvent être appelées directement , instances La méthode doit d'abord générer une instance et appeler la méthode via l'instance. La vitesse statique est très rapide, mais si elle est trop élevée, elle occupera de la mémoire.

Tout langage fonctionne sur la mémoire et le disque. Quant à savoir s'il est orienté objet ou non, c'est juste une question de couche logicielle. La couche inférieure est la même, mais la méthode d'implémentation est différente.

La mémoire statique est continue car elle est générée au début du programme, et l'instance s'applique à l'espace discret, donc bien sûr elle n'est pas aussi rapide que la méthode statique,

Et la mémoire statique est limitée S'il y en a trop, le programme ne pourra pas démarrer.

Tutoriel recommandé : "Tutoriel php"

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