Zusammenfassung von Beispielen für PHP-bezogene Wissenspunkte

高洛峰
Freigeben: 2023-03-03 19:56:01
Original
1028 Leute haben es durchsucht

Die Beispiele in diesem Artikel fassen die relevanten Wissenspunkte der PHP-Klasse 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 die Methode nicht überschreiben. Wenn eine Klasse als final deklariert ist, kann sie nicht vererbt werden.

final class a{}
class a{
  final public function A(){}
}
Nach dem Login kopieren

Abstrakte Klassen und abstrakte Methoden

abstract class a {
  public abstract function func();
}
class A extends a{
  public function func(){}
}
Nach dem Login kopieren

① Eine Klasse Sie können abstract verwenden, um eine abstrakte Klasse zu deklarieren. Eine abstrakte Klasse ist eine Klasse, die nicht instanziiert werden kann und nur als übergeordnete Klasse für andere Klassen verwendet wird.

abstract class name{}
Nach dem Login kopieren

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

abstract public function name($val);
Nach dem Login kopieren

③ 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 Zugriffskontrollbereich nicht reduziert werden und die Methodenparameter müssen ebenfalls konsistent (neu geschrieben) sein.

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(){}
}
Nach dem Login kopieren

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{}
Nach dem Login kopieren

② Eine Schnittstelle kann nur eine Schnittstelle erben

interface a extends b{}
Nach dem Login kopieren

③ Die Methoden sind alle abstrakte Methoden ohne abstrakte Modifikation, d. h. die untergeordneten Klassen implementieren entweder die Schnittstellenmethoden (implementiert) oder werden auch als abstrakte Methoden deklariert

Überladungstechnologie

1. Attributüberladung: Wenn Sie ein nicht vorhandenes Attribut verwenden, wird eine vordefinierte Methode in der Klasse aufgerufen, um die Daten zu verarbeiten Wenn das Attribut nicht verwendet wird, führen Sie Folgendes aus: Verarbeitung

① Wert: Rufen Sie automatisch __get()

② in der Klasse auf. Zuweisung: Rufen Sie automatisch __set()

③ in der Klasse auf. Bestimmen Sie, ob es existiert : __isset automatisch in der Klasse aufrufen ()
④ Zerstörung: __unset() automatisch in der Klasse aufrufen

Voraussetzung ist, dass diese Methoden vordefiniert sind, andernfalls wird ein Fehler gemeldet

<?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));
Nach dem Login kopieren

Die Laufergebnisse sind wie folgt:

one not exists
1
boolean true
Nach dem Login kopieren

2. Methodenüberladung: Wenn eine nicht vorhandene Methode verwendet wird, wird die voreingestellte Methode in der Klasse aufgerufen. Eine definierte Methode wird verwendet, um dieses Verhalten zu behandeln.

Führen Sie für Anwendungsszenarien, in denen die Methode nicht verwendet wird, die folgende Verarbeitung aus

① Rufen Sie unzugängliche Methoden im Objekt auf: __call()

② Rufen Sie unzugängliche Methoden im statischen Modus auf: __callStatic()


<?php
class bee{
  public function __call($name,$arr){
    echo &#39;<br>&#39;;
    echo &#39;function &#39;.$name.&#39; not exist&#39;;
  }
  static function __callStatic($name,$arr){
    echo &#39;<br>&#39;;
    echo &#39;function &#39;.$name.&#39; not exist&#39;;
  }
  /*public function __call($name,$arr){
    $num = count($arr);
    if($num<1){
      $name();
    }else{
      $name = $name.&#39;_one&#39;;
      $name($arr[0]);
    }
  }*/
}
$obj->func();
bee::staFunc();
/*$obj->func(1);
function func(){
  echo &#39;<br>&#39;;
  echo &#39;no.0&#39;;
}
function func_one($val){
  echo &#39;<br>&#39;;
  echo &#39;no.&#39;.$val;
}*/
Nach dem Login kopieren

Die laufenden Ergebnisse sind wie folgt:

function func not exist
function staFunc not exist
Nach dem Login kopieren

Hinweis: Die oben genannten Methoden sind alle magische Methoden, alle mit Parametern

Das hoffe ich Der Artikel wird für jeden hilfreich sein, der sich mit PHP-Programmierung beschäftigt.

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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!