Heim  >  Artikel  >  Backend-Entwicklung  >  Was sind die Unterschiede zwischen statischen Aufrufen und instanziierten Aufrufen von PHP-Klassen?

Was sind die Unterschiede zwischen statischen Aufrufen und instanziierten Aufrufen von PHP-Klassen?

烟雨青岚
烟雨青岚Original
2020-06-30 15:58:383394Durchsuche

Die Unterschiede sind: 1. Statische Methoden generieren Speicher, wenn das Programm gestartet wird, und Instanzmethoden generieren Speicher, während das Programm ausgeführt wird. 2. Statische Methoden können direkt aufgerufen werden, und Instanzmethoden müssen zuerst eine Instanz generieren. 3. Der statische Speicher ist kontinuierlich und die Instanz beansprucht diskreten Speicherplatz. Daher ist er nicht so schnell wie die statische Methode und der statische Speicher ist begrenzt.

Was sind die Unterschiede zwischen statischen Aufrufen und instanziierten Aufrufen von PHP-Klassen?

Es gibt nur eine statische Methode, egal wie oft Sie sie aufrufen, es gibt kein Objektkonzept , daher kann es nicht statisch verwendet werden. Verwenden Sie $this, um die Methode aufzurufen. Sie können nur Ihre eigene Klasse instanziieren.

Instanzierung ist ein Objekt und hat mehrere .

Lassen Sie uns ein Beispiel verwenden, um

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

Machen Sie eine kurze Zusammenfassung:

Der größte Unterschied ist das Gedächtnis.

Statische Methoden generieren Speicher, wenn das Programm startet, Instanzmethoden generieren Speicher, während das Programm läuft,

So statische Methoden können direkt aufgerufen werden , Instanzen Die Methode muss zuerst eine Instanz generieren und die Methode über die Instanz aufrufen. Die statische Geschwindigkeit ist sehr hoch, aber wenn sie zu hoch ist, belegt sie Speicher.

Jede Sprache arbeitet auf Speicher und Festplatte. Ob sie objektorientiert ist oder nicht, ist nur eine Frage der Softwareschicht. Die unterste Ebene ist dieselbe, aber die Implementierungsmethode ist unterschiedlich.

Statischer Speicher ist kontinuierlich, da er zu Beginn des Programms generiert wird und die Instanz diskreten Speicherplatz beansprucht, daher ist er natürlich nicht so schnell wie die statische Methode,

Außerdem ist der statische Speicher begrenzt Wenn zu viel vorhanden ist, kann das Programm nicht gestartet werden.

Empfohlenes Tutorial: „PHP-Tutorial

Das obige ist der detaillierte Inhalt vonWas sind die Unterschiede zwischen statischen Aufrufen und instanziierten Aufrufen von PHP-Klassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn