Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Klassen, Schnittstellen, Überladung verwandter Wissensbeispielcode-Zusammenfassung

PHP-Klassen, Schnittstellen, Überladung verwandter Wissensbeispielcode-Zusammenfassung

伊谢尔伦
伊谢尔伦Original
2017-06-29 13:36:58974Durchsuche

In diesem Artikel werden hauptsächlich die Wissenspunkte im Zusammenhang mit PHP-Klassen vorgestellt und die mit PHP-Klassen verbundenen Abschlussklassen, Abschlussmethoden und Abstraktklassen, abstrakte Methoden, Schnittstellen, Überladung, magische Methoden und andere verwandte Konzepte und Betriebstechniken. Freunde in Not können sich auf

beziehen. Dieser Artikel fasst die relevanten Wissenspunkte von PHP-Klassen anhand von Beispielen zusammen. Geben Sie es wie folgt als Referenz an alle weiter:

Endgültige Klasse und endgültige Methode

Wenn eine Methode in der übergeordneten Klasse als endgültig deklariert wird, kann die Unterklasse sie nicht überschreiben Verfahren. Wenn eine Klasse als final deklariert ist, kann sie nicht vererbt werden.

final class a{}
class a{
  final public function A(){}
}

Abstrakte Klassen und abstrakte Methoden

abstract class a {
  public abstract function func();
}
class A extends a{
  public function func(){}
}

① Eine Klasse kann mit abstrakten Klassen als abstrakte Klasse deklariert werden Klasse, wird nur als übergeordnete Klasse für andere Klassen verwendet.

abstract class name{}

② Eine Methode kann mit abstrakten Methoden als abstrakte Methode deklariert werden; abstrakte Methoden müssen nur den Methodenheader deklarieren und benötigen nicht den Methodenkörper in den geschweiften Klammern.

abstract public function name($val);

③ Wenn eine Klasse eine abstrakte Methode enthält, muss die Klasse als abstrakte Klasse deklariert werden.

④ Wenn eine Unterklasse von einer abstrakten Klasse erbt, kann die Unterklasse nicht alle abstrakten Methoden in der übergeordneten Klasse implementieren, es sei denn, die Unterklasse bleibt auch weiterhin eine abstrakte Klasse.

⑤ Wenn eine Unterklasse eine Methode einer abstrakten übergeordneten Klasse implementiert, kann der Umfang des Zugriffskontrollzeichens nicht reduziert werden, und die Parameter der Methode müssen ebenfalls reduziert werden konsistent sein (umgeschrieben).

Schnittstelle

Schnittstelle kann als Abstraktion einer abstrakten Klasse auf höherer Ebene betrachtet werden, man kann sie als Sonderfall einer abstrakten Klasse bezeichnen

interface a{
  function func();
}
class A implements a {
  function func(){}
}
Klasse: Attribute, Klassenkonstanten, Methoden

Abstrakte Klasse: Attribute, Klassenkonstanten, abstrakte Methoden

Schnittstelle: Schnittstellenkonstanten, abstrakte Methoden

① Im Vergleich zu abstrakten Klassen können Schnittstellen eine „Mehrfachvererbung“ implementieren

class A implements a,b,c{}

② Eine Schnittstelle kann nur eine Schnittstelle erben

interface a extends b{}

③ Bei den Methoden handelt es sich ausschließlich um abstrakte Methoden ohne abstrakte Modifikation, d Technologie

1. Attributüberladung: Wenn Sie ein nicht vorhandenes Attribut verwenden, wird eine vordefinierte Methode in der Klasse aufgerufen, um die Daten zu verarbeiten; Führen Sie für Anwendungsszenarien, in denen das Attribut nicht verwendet wird, die folgende Verarbeitung durch

① Wert: Get() automatisch in der Klasse aufrufen

② Zuweisung: set() automatisch in der Klasse aufrufen③ Stellen Sie fest, ob es existiert: Rufen Sie die Klasse isset() automatisch in isset() auf④ Zerstörung: Rufen Sie unset() automatisch in der Klasse auf

vorausgesetzt, dass diese Methoden vorab vorhanden sind -definiert, andernfalls wird ein Fehler gemeldet


Die laufenden Ergebnisse sind wie folgt:

2. Methodenüberladung

: Wenn eine nicht vorhandene Methode verwendet wird, wird eine vordefinierte Methode in der Klasse aufgerufen, um dieses Verhalten zu behandeln.
<?php
class bee{
  public $ol = array();
  public function get($key){
    if(isset($this->ol[$key])){
      return $this->ol[$key];
    }
    return $key.&#39; not exists&#39;;
  }
  public function set($key,$val){
    $this->ol[$key] = $val;
  }
  public function isset($key){
    if(isset($this->ol[$key])){
      return true;
    }
    return false;
  }
  public function unset($key){
    unset($this->ol[$key]);
  }
}
$obj = new bee();
echo $obj->one;
echo &#39;<br>&#39;;
$obj->one = 1;
echo $obj->one;
echo &#39;<br>&#39;;
var_dump(isset($obj->one));

Führen Sie für Anwendungsszenarien, in denen die Methode nicht verwendet wird, die folgende Verarbeitung aus 🎜>
one not exists
1
boolean true

① Rufen Sie unzugängliche Methoden im Objekt auf: call()② Rufen Sie unzugängliche Methoden im statischen Modus auf: callStatic()

Die laufenden Ergebnisse sind wie folgt folgt:

Hinweis: Die oben genannten Methoden sind alle magische Methoden. Alle haben Parameter

Das obige ist der detaillierte Inhalt vonPHP-Klassen, Schnittstellen, Überladung verwandter Wissensbeispielcode-Zusammenfassung. 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