Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Serie (1)

PHP-Serie (1)

黄舟
黄舟Original
2017-02-06 09:50:161655Durchsuche

Zu Beginn des Artikels geschrieben:

Das Frühlingsfest naht und ich werde morgen nach Hause gehen. Nach einem arbeitsreichen Jahr kann ich endlich Zeit mit meiner Familie verbringen. Nachdem Außenstehende Peking verlassen hatten, war Peking wie eine „leere Stadt“. Als meine Kollegen heute darüber sprachen, erinnerten sie sich plötzlich an Sima Qians berühmtes Sprichwort: „Alles auf der Welt ist geschäftig, um Profit zu machen; die Welt ist geschäftig, alles ist geschäftig, um Profit zu machen.“ „Jetzt geht es in die Richtung des Gewinns. Es sollte um familiäre Bindungen gehen, um das Aufziehen des Drachens, egal, was Sie im vergangenen Jahr erlebt haben, Sie müssen Ihre Stimmung packen und nach Hause gehen, um das neue Jahr zu feiern. Ich wünsche euch allen im Voraus ein frohes neues Jahr ~

Während des Frühlingsfestes werde ich auch mein Versprechen an mich selbst erfüllen und jede Woche mindestens einen Artikel veröffentlichen.

Ich möchte auch den And1-Lesern für ihre wertvollen Vorschläge danken. Wenn Sie gute Vorschläge haben, lassen Sie es mich bitte wissen.

Zurück zum Haupttext: Heute werden wir über Klassen in PHP sprechen.

1 Was ist eine Klasse?

Eine Klasse besteht darin, einige Dinge in eine Kategorie einzuordnen, wie zum Beispiel Katzen, Hunde und Schweine. Sie sind alle Tiere, also können wir sie in eine Kategorie einordnen Kategorie. Klassen sind abstrakt und nicht konkret. Wenn eine Klasse konkretisiert wird, ist sie ein Objekt der Klasse. Schüler können auch als Klasse betrachtet werden, dann ist Xiaohong ein Objekt in der Schülerklasse (die Terminologie in der Entwicklung wird auch „Instanz“ genannt)

Grob gesagt ist eine Klasse eine Sammlung vieler Methoden (Eigentlich gibt es Attribute, die nur in Verbindung mit Methoden implementiert werden.) Diese Methoden sind einige Logiken oder Algorithmen, die Sie häufig in Programmen verwenden. Sie können die Effizienz des Programms verbessern und die Codeduplizierung reduzieren.

2 Klassendefinition

Die Definition jeder Klasse beginnt mit dem Schlüsselwort class, gefolgt vom Klassennamen, gefolgt von einem Paar geschweifter Klammern, die die Attribute und Eigenschaften von enthalten die Klassendefinition der Methode.

<?php
class SimpleClass
{
    // 声明类的属性
    public $var = &#39;a default value&#39;;

    // 声明类的方法
    public function displayVar() {
        echo $this->var;
    }
}
?>

Wenn eine Methode innerhalb einer Klassendefinition aufgerufen wird, steht eine Pseudovariable $this zur Verfügung. $this ist eine Referenz auf das aufrufende Objekt. Tatsächlich bezieht es sich auf die Instanz dieser Klasse (Pronomen)

3. Die Instanz der Klasse

ist auch ein bestimmtes Objekt. Um eine Instanz einer Klasse zu erstellen, muss das Schlüsselwort new verwendet werden.

Wenn auf new eine Zeichenfolge folgt, die den Klassennamen enthält, wird eine Instanz dieser Klasse erstellt.

// 创建一个实例
<?php
$instance = new SimpleClass();

// 也可以这样做:
$className = &#39;Foo&#39;;
$instance = new $className(); // Foo()
?>

4-Klassen-Vererbung

kann so verstanden werden, dass ein Kind die Gene seines Vaters erbt.

① Eine Klasse kann die Methoden und Eigenschaften einer anderen Klasse erben, indem sie das Schlüsselwort „extens“ in der Deklaration verwendet.

② PHP unterstützt keine Mehrfachvererbung. Eine Klasse kann nur eine Basisklasse erben (tatsächlich kann ein Kind nur einen Vater haben).

③ Vererbte Methoden und Eigenschaften können überschrieben werden, indem sie mit demselben Namen neu deklariert werden (es kann verstanden werden, dass der Sohn die ursprünglichen Gene des Vaters verbessert hat). Wenn die übergeordnete Klasse jedoch beim Definieren einer Methode final verwendet, kann die Methode nicht überschrieben werden. Auf überschriebene Methoden oder Eigenschaften kann über parent:: zugegriffen werden.

④ Beim Überschreiben einer Methode müssen die Parameter konsistent sein, andernfalls gibt PHP eine Fehlermeldung der Ebene E_STRICT aus. Die Ausnahme bilden Konstruktoren, die beim Überschreiben unterschiedliche Parameter annehmen können.

// 简单的类继承
<?php
class ExtendClass extends SimpleClass
{
    // 重新定义父类的方法
    function displayVar()
    {
        echo "继承类\n";
        parent::displayVar();
    }
}

$extended = new ExtendClass();
$extended->displayVar();
?>

5 Parsen von Klassennamen

Mit ClassName::class können Sie eine Zeichenfolge erhalten, die den vollständig qualifizierten Namen der Klasse ClassName enthält.

// 类名的解析
<?php
namespace NS {
    class ClassName {
    }

    echo ClassName::class;
}
?>

// 以上输出结果: NS/ClassName

Das Obige ist der Inhalt der PHP-Reihe (1). Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


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