Heim > Backend-Entwicklung > PHP-Tutorial > Über den Unterschied zwischen Aufrufen statischer PHP-Methoden und instanziierten Klassenaufrufen

Über den Unterschied zwischen Aufrufen statischer PHP-Methoden und instanziierten Klassenaufrufen

不言
Freigeben: 2023-03-23 10:00:01
Original
2725 Leute haben es durchsucht

Der Inhalt dieses Artikels stellt den Unterschied zwischen statischen PHP-Methodenaufrufen und instanziierten Klassenaufrufen vor. Jetzt können Freunde in Not darauf verweisen.

1 🎜>

Da es nur eine Kopie der statischen Methode im Speicher gibt, wird sie unabhängig davon, wie oft Sie sie aufrufen, gemeinsam genutzt, und es gibt kein Objektkonzept, sodass Sie $this nicht in der statischen Methode verwenden können Methode. Wenn Sie sie aufrufen müssen, können Sie nur Ihre eigene Klasse instanziieren

Aber jede Instanziierung ist ein Objekt und es gibt mehrere im Speicher


Über den Unterschied zwischen Aufrufen statischer PHP-Methoden und instanziierten Klassenaufrufen

<?phpError_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();//正确
Nach dem Login kopieren
/* 
  bar()是一个非静态方法,应该由对象来调用,但用静态来调用此方法也可以执行,而严格状态下,此方法会执行,同时报错, 
  Strict Standards: Non-static method Human::easyeat() should not be called statically in........
  但是实例化的类是可以调用静态方法的。
*/
Nach dem Login kopieren

Über den Unterschied zwischen Aufrufen statischer PHP-Methoden und instanziierten Klassenaufrufen


Über den Unterschied zwischen Aufrufen statischer PHP-Methoden und instanziierten Klassenaufrufen

<?phpclass A{    public $name = &#39;zongshuai&#39;;    public function bar(){        echo &#39;bar&#39;.PHP_EOL;
    }    public static function foo(){        echo self::$name.PHP_EOL;//报错
    }
}

A::foo();/*
    静态方法不能调用非静态属性 。不能使用self::调用非静态属性。*/
Nach dem Login kopieren

Über den Unterschied zwischen Aufrufen statischer PHP-Methoden und instanziierten Klassenaufrufen

总结: 
类》访问->静态方法(类的方法)->可以 
类》访问->普通方法(对象的方法)->不可以(虽然方法里不用$this关键字时,可以!但不支持这种写法)
对象》访问》静态方法(类的方法)->可以 
对象》访问》普通方法(对象的方法)->可以
相关推荐:
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonÜber den Unterschied zwischen Aufrufen statischer PHP-Methoden und instanziierten Klassenaufrufen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage