Heim  >  Artikel  >  Backend-Entwicklung  >  php – statisches Schlüsselwort

php – statisches Schlüsselwort

伊谢尔伦
伊谢尔伦Original
2016-11-23 14:11:37985Durchsuche

Auf dieser Seite wird die Verwendung des Schlüsselworts static zum Definieren statischer Methoden und Eigenschaften erläutert. static kann auch zum Definieren statischer Variablen und später statischer Bindung verwendet werden.

Das Deklarieren von Klassenattributen oder -methoden als statisch ermöglicht den direkten Zugriff ohne Instanziierung der Klasse. Auf statische Eigenschaften kann nicht über ein Objekt einer instanziierten Klasse zugegriffen werden (auf statische Methoden ist dies jedoch möglich).

Um mit PHP 4 kompatibel zu sein, sind Eigenschaften und Methoden standardmäßig öffentlich, wenn keine Zugriffskontrolle angegeben ist.

Da statische Methoden keinen Aufruf eines Objekts erfordern, ist die Pseudovariable $this in statischen Methoden nicht verfügbar.

Auf statische Eigenschaften können Objekte nicht über den ->-Operator zugreifen.

Der statische Aufruf einer nicht statischen Methode führt zu einem Fehler der Ebene E_STRICT.

Wie alle anderen statischen PHP-Variablen können statische Eigenschaften nur als Literale oder Konstanten initialisiert werden, nicht als Ausdrücke. Eine statische Eigenschaft kann also mit einer Ganzzahl oder einem Array initialisiert werden, sie kann jedoch nicht mit einem anderen Variablen- oder Funktionsrückgabewert initialisiert werden und kann auch nicht auf ein Objekt verweisen.

Beispiel #1 Beispiel für ein statisches Attribut

class Foo
{
    public static $my_static = 'foo';
    public function staticValue(){
        return self::$my_static;
    }
}
class Bar extends Foo
{
    public function fooStatic(){
        return parent::$my_static;
    }
}
print Foo::$my_static.&#39;<br>&#39;;
$foo = new Foo();
print $foo->staticValue().&#39;<br>&#39;;
print $foo->my_static.&#39;<br>&#39;;
print $foo::$my_static.&#39;<br>&#39;;
$classname = &#39;Foo&#39;;
print $classname::$my_static;
print Bar::$my_static.&#39;<br>&#39;;
$bar = new Bar();
print $bar->fooStatic().&#39;<br>&#39;;


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